Skip to content

Commit 61f8bb3

Browse files
committed
Set default PDF variant values in options before generating PDF
We then have the PDF identifier and version set to the variant defaults during generation.
1 parent d772c83 commit 61f8bb3

File tree

2 files changed

+17
-11
lines changed

2 files changed

+17
-11
lines changed

tests/test_api.py

+6
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,12 @@ def test_pdfa_compressed(version, pdf_version):
464464
_run(f'--pdf-variant=pdf/a-{version}b - -', b'test')
465465

466466

467+
def test_pdfa1b_cidset():
468+
stdout = _run('--pdf-variant=pdf/a-1b --uncompressed-pdf - -', b'test')
469+
assert b'PDF-1.4' in stdout
470+
assert b'CIDSet' in stdout
471+
472+
467473
def test_pdfua():
468474
stdout = _run('--pdf-variant=pdf/ua-1 --uncompressed-pdf - -', b'test')
469475
assert b'part="1"' in stdout

weasyprint/document.py

+11-11
Original file line numberDiff line numberDiff line change
@@ -388,24 +388,24 @@ def write_pdf(self, target=None, zoom=1, finisher=None, **options):
388388
new_options = DEFAULT_OPTIONS.copy()
389389
new_options.update(options)
390390
options = new_options
391-
pdf = generate_pdf(self, target, zoom, **options)
392-
393-
identifier = options['pdf_identifier']
394-
compress = not options['uncompressed_pdf']
395-
version = options['pdf_version']
396-
variant = options['pdf_variant']
397391

398392
# Set default PDF version for PDF variants.
399-
if version is None and variant:
393+
if variant := options['pdf_variant']:
400394
_, properties = VARIANTS[variant]
401-
if 'version' in properties:
402-
version = properties['version']
403-
if 'identifier' in properties and not identifier:
404-
identifier = properties['identifier']
395+
if 'version' in properties and not options['pdf_version']:
396+
options['pdf_version'] = properties['version']
397+
if 'identifier' in properties and not options['pdf_identifier']:
398+
options['pdf_identifier'] = properties['identifier']
399+
400+
pdf = generate_pdf(self, target, zoom, **options)
405401

406402
if finisher:
407403
finisher(self, pdf)
408404

405+
identifier = options['pdf_identifier']
406+
compress = not options['uncompressed_pdf']
407+
version = options['pdf_version']
408+
409409
if target is None:
410410
output = io.BytesIO()
411411
pdf.write(output, version, identifier, compress)

0 commit comments

Comments
 (0)