From 8f0588e8f30fd4cd2bdbb85a66c43f132ab591df Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Fri, 1 Mar 2024 11:57:51 +0100 Subject: [PATCH] winziprint.py: Fix letterhead positioning --- src/winziprint.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/winziprint.py b/src/winziprint.py index f48d6b0..14191ce 100755 --- a/src/winziprint.py +++ b/src/winziprint.py @@ -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