From 41da2cef0536e9473c32eeac8a5859800ec73fa9 Mon Sep 17 00:00:00 2001 From: "Jorj X. McKie" Date: Thu, 13 Oct 2022 14:25:27 +0100 Subject: [PATCH] fitz/utils.py: Fixed issues #1913 and #1909. Changing the default value of "color" parameter from None to (0,) causes color "black" if letting default it. New verbose parameter in Document,subset_fonts suppresses messages by default. --- fitz/utils.py | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/fitz/utils.py b/fitz/utils.py index 61c31b1f5..3c9aebf85 100644 --- a/fitz/utils.py +++ b/fitz/utils.py @@ -1798,7 +1798,7 @@ def insert_page( height: float = 842, fontname: str = "helv", fontfile: OptStr = None, - color: OptSeq = None, + color: OptSeq = (0,), ) -> int: """Create a new PDF page and insert some text. @@ -1824,7 +1824,7 @@ def draw_line( page: Page, p1: point_like, p2: point_like, - color: OptSeq = None, + color: OptSeq = (0,), dashes: OptStr = None, width: float = 1, lineCap: int = 0, @@ -1860,7 +1860,7 @@ def draw_squiggle( p1: point_like, p2: point_like, breadth: float = 2, - color: OptSeq = None, + color: OptSeq = (0,), dashes: OptStr = None, width: float = 1, lineCap: int = 0, @@ -1896,7 +1896,7 @@ def draw_zigzag( p1: point_like, p2: point_like, breadth: float = 2, - color: OptSeq = None, + color: OptSeq = (0,), dashes: OptStr = None, width: float = 1, lineCap: int = 0, @@ -1930,7 +1930,7 @@ def draw_zigzag( def draw_rect( page: Page, rect: rect_like, - color: OptSeq = None, + color: OptSeq = (0,), fill: OptSeq = None, dashes: OptStr = None, width: float = 1, @@ -1965,7 +1965,7 @@ def draw_rect( def draw_quad( page: Page, quad: quad_like, - color: OptSeq = None, + color: OptSeq = (0,), fill: OptSeq = None, dashes: OptStr = None, width: float = 1, @@ -2000,7 +2000,7 @@ def draw_quad( def draw_polyline( page: Page, points: list, - color: OptSeq = None, + color: OptSeq = (0,), fill: OptSeq = None, dashes: OptStr = None, width: float = 1, @@ -2038,7 +2038,7 @@ def draw_circle( page: Page, center: point_like, radius: float, - color: OptSeq = None, + color: OptSeq = (0,), fill: OptSeq = None, morph: OptSeq = None, dashes: OptStr = None, @@ -2072,7 +2072,7 @@ def draw_circle( def draw_oval( page: Page, rect: typing.Union[rect_like, quad_like], - color: OptSeq = None, + color: OptSeq = (0,), fill: OptSeq = None, dashes: OptStr = None, morph: OptSeq = None, @@ -2109,7 +2109,7 @@ def draw_curve( p1: point_like, p2: point_like, p3: point_like, - color: OptSeq = None, + color: OptSeq = (0,), fill: OptSeq = None, dashes: OptStr = None, width: float = 1, @@ -2149,7 +2149,7 @@ def draw_bezier( p2: point_like, p3: point_like, p4: point_like, - color: OptSeq = None, + color: OptSeq = (0,), fill: OptSeq = None, dashes: OptStr = None, width: float = 1, @@ -2188,7 +2188,7 @@ def draw_sector( center: point_like, point: point_like, beta: float, - color: OptSeq = None, + color: OptSeq = (0,), fill: OptSeq = None, dashes: OptStr = None, fullSector: bool = True, @@ -3817,7 +3817,7 @@ def pixlen(x): def finish( self, width: float = 1, - color: OptSeq = None, + color: OptSeq = (0,), fill: OptSeq = None, lineCap: int = 0, lineJoin: int = 0, @@ -5057,7 +5057,7 @@ def recover_char_quad(line_dir: tuple, span: dict, char: dict) -> Quad: # ------------------------------------------------------------------- # Building font subsets using fontTools # ------------------------------------------------------------------- -def subset_fonts(doc: Document) -> None: +def subset_fonts(doc: Document, verbose: bool = False) -> None: """Build font subsets of a PDF. Requires package 'fontTools'. Eligible fonts are potentially replaced by smaller versions. Page text is @@ -5301,7 +5301,8 @@ def find_buffer_by_name(name): # ----------------- repl_fontnames(doc) # populate font information if not font_buffers: # nothing found to do - print("No fonts to subset.") + if verbose: + print("No fonts to subset.") return 0 old_fontsize = 0 @@ -5333,9 +5334,11 @@ def find_buffer_by_name(name): fontname = list(name_set)[0] if new_buffer == None or len(new_buffer) >= len(old_buffer): # subset was not created or did not get smaller - print("Cannot subset '%s'." % fontname) + if verbose: + print(f"Cannot subset '{fontname}'.") continue - print("Built subset of font '%s'." % fontname) + if verbose: + print(f"Built subset of font '{fontname}'.") val = doc._insert_font(fontbuffer=new_buffer) # store subset font in PDF new_xref = val[0] # get its xref set_subset_fontname(new_xref) # tag fontname as subset font