winziprint.py: Fix bug where letterhead from tmp_file is only first page

This commit is contained in:
2024-03-02 18:35:20 +01:00
parent 7945e0ae8a
commit 75689983df

View File

@ -16,7 +16,7 @@ import weasyprint
import pypdf import pypdf
VERSION = __version__ = '0.2.2' VERSION = __version__ = '0.2.3'
SOCKET_ADDRESS = ('127.0.0.1', 30983) SOCKET_ADDRESS = ('127.0.0.1', 30983)
BATCH_SIZE = 10 BATCH_SIZE = 10
@ -87,12 +87,13 @@ def convert(input_files: list[str],
else: else:
batch_page_nums = tmp_page_nums[i // BATCH_SIZE * BATCH_SIZE:(i // BATCH_SIZE + 1) * BATCH_SIZE] batch_page_nums = tmp_page_nums[i // BATCH_SIZE * BATCH_SIZE:(i // BATCH_SIZE + 1) * BATCH_SIZE]
page_start = sum(batch_page_nums[:i % BATCH_SIZE]) page_start = sum(batch_page_nums[:i % BATCH_SIZE])
tmp_file_name = tmp_file_names[i // BATCH_SIZE]
if padding and file_name.startswith('#'): if padding and file_name.startswith('#'):
r = pypdf.PdfReader(tmp_file_names[i // BATCH_SIZE]) r = pypdf.PdfReader(tmp_file_name)
letterhead = (r.pages[0], p0) letterhead = (r.pages[page_start], p0)
del r del r
else: else:
merger.append(tmp_file_names[i // BATCH_SIZE], pages=(page_start, page_start + tmp_page_nums[i])) merger.append(tmp_file_name, pages=(page_start, page_start + tmp_page_nums[i]))
i += 1 i += 1
p1 = len(merger.pages) p1 = len(merger.pages)
page_nums.append(p1 - p0) page_nums.append(p1 - p0)