逐页合并两个PDF文件。Python,PyPDF2,Alteryx
我的目标是把两个PDF文件合并成一个,并且我希望这两个PDF文件的每一页能够交替排列。比如,第一份PDF的第一页后面接着第二份PDF的第一页,其他页面也遵循这个规则。
为了这个项目,我使用的是PyPDF2,版本是1.26.0(这是我公司规定的),我已经写了一个脚本,但合并后的文件里所有的页面都是空白的。有没有人知道我该如何修改我的脚本,才能让合并后的文件里包含两个PDF文件的数据?我使用的Python脚本如下:
我使用的Python脚本,但结果是空白页面:
from ayx import Alteryx
from PyPDF2 import PdfFileReader, PdfFileWriter
import os
import PyPDF2
directory_path = Alteryx.read('#1').iloc[0,0] #this projected is done in Alteryx, my path is to folder #with two PDF files
pdf_files = [file for file in os.listdir(directory_path)]
output_pdf = PdfFileWriter()
for i in range(0, min(len(pdf_files), len(pdf_files)- len(pdf_files)% 2), 2):
with open(os.path.join(directory_path,pdf_files[i]), 'rb') as file1,open(os.path.join(directory_path, pdf_files[i+1]),'rb') as file2:
reader1 = PdfFileReader(file1)
reader2 = PdfFileReader(file2)
for page_num in range(max(reader1.getNumPages(), reader2.getNumPages())):
if page_num < reader1.getNumPages():
output_pdf.addPage(reader1.getPage(page_num))
if page_num < reader2.getNumPages():
output_pdf.addPage(reader2.getPage(page_num))
output_file_path = os.path.join(directory_path, 'merged.pdf')
with open(output_file_path, 'wb') as output_file:
output_pdf.write(output_file)
1 个回答
0
你可能遇到这个问题是因为你想合并的其中一个文件页数比另一个少。你的循环是根据两个文件中页数最多的那个来进行的。你可以尝试修复这个问题。