Add stop on soft render errors and option to override

This commit is contained in:
James R. Barlow
2023-06-01 23:49:34 -07:00
parent 22d35c199d
commit e8ed510543
13 changed files with 68 additions and 20 deletions
+5 -1
View File
@@ -30,7 +30,7 @@ except AttributeError:
log = logging.getLogger(__name__)
# Most reliable what to get the bitness of Python interpreter, according to Python docs
# Most reliable way to get the bitness of Python interpreter, according to Python docs
_IS_64BIT = sys.maxsize > 2**32
_GSWIN = None
@@ -63,6 +63,7 @@ def rasterize_pdf(
page_dpi: Resolution | None = None,
rotation: int | None = None,
filter_vector: bool = False,
stop_on_error: bool = False,
):
"""Rasterize one page of a PDF at resolution raster_dpi in canvas units."""
raster_dpi = raster_dpi.round(6)
@@ -83,6 +84,7 @@ def rasterize_pdf(
f'-r{raster_dpi.x:f}x{raster_dpi.y:f}',
]
+ (['-dFILTERVECTOR'] if filter_vector else [])
+ (['-dPDFSTOPONERROR'] if stop_on_error else [])
+ [
'-o',
'-',
@@ -161,6 +163,7 @@ def generate_pdfa(
pdf_version: str = '1.5',
pdfa_part: str = '2',
progressbar_class=None,
stop_on_error: bool = False,
):
# Ghostscript's compression is all or nothing. We can either force all images
# to JPEG, force all to Flate/PNG, or let it decide how to encode the images.
@@ -207,6 +210,7 @@ def generate_pdfa(
"-dAutoRotatePages=/None",
"-sColorConversionStrategy=" + strategy,
]
+ (['-dPDFSTOPONERROR'] if stop_on_error else [])
+ compression_args
+ [
"-dJPEGQ=95",