winziprint.py: Fix letterhead positioning

This commit is contained in:
2024-03-01 11:57:51 +01:00
parent 4d5020f2b9
commit 8f0588e8f3

View File

@ -72,10 +72,15 @@ def convert(input_files: list[str],
i = 0
for n, file_name in enumerate(input_files):
p0 = len(merger.pages)
if letterhead and file_name.startswith('#'):
merger.insert_page(letterhead[0], index=letterhead[1])
merger.insert_blank_page(index=letterhead[1] + 1)
page_nums[letterhead[1]] = 1
letterhead = None
if file_name.endswith('.pdf'):
if file_name.startswith('#'):
r = pypdf.PdfReader(file_name.lstrip('!#'))
letterhead = r.pages[0]
letterhead = (r.pages[0], p0)
del r
else:
merger.append(file_name.lstrip('!#'))
@ -84,7 +89,7 @@ def convert(input_files: list[str],
page_start = sum(batch_page_nums[:i % BATCH_SIZE])
if file_name.startswith('#'):
r = pypdf.PdfReader(tmp_file_names[i // BATCH_SIZE])
letterhead = r.pages[0]
letterhead = (r.pages[0], p0)
del r
else:
merger.append(tmp_file_names[i // BATCH_SIZE], pages=(page_start, page_start + tmp_page_nums[i]))
@ -93,15 +98,18 @@ def convert(input_files: list[str],
page_nums.append(p1 - p0)
if padding and file_name[0] != '!' and len(merger.pages) % 2 != 0:
if letterhead:
merger.add_page(letterhead)
merger.add_page(letterhead[0])
letterhead = None
else:
merger.add_blank_page()
if letterhead:
merger.insert_page(letterhead, index=0)
merger.insert_blank_page(index=1)
page_nums.pop(0)
page_nums.insert(0, 1)
if len(merger.pages) <= letterhead[1]:
merger.add_page(letterhead[0])
merger.add_blank_page()
else:
merger.insert_page(letterhead[0], index=letterhead[1])
merger.insert_blank_page(index=letterhead[1] + 1)
page_nums[letterhead[1]] = 1
merger.write(output_file)
merger.close()
del merger