我正在合并PDF页面(水印样式),以使原始的基本pdf轮廓填充有另一个pdf的文本。
基本pdf是提供标题的一页。 pdf文本是两页pdf,在第1页上有文本,在第2页上有文本。
我正在尝试生成两个页面的pdf输出,该输出在每个页面上具有基本页眉,并在原始文本pdf的每个页面中具有对应的文本。
但是,当执行下面的代码时,结果是两页pdf,每页都有标题,而结果pdf的两页中的每一页都是两页文本。
# file1 # Pdf file - text of two pages
# file2 # Pdf file - base header of one page
# fileO # Output file
from PyPDF2 import PdfFileWriter, PdfFileReader
textpdf = PdfFileReader(open(file1,'rb')) # Reads the text PDF into PyPDF2
basepdf = PdfFileReader(open(file2,'rb')) # Reads the base PDF into PyPDF2
output = PdfFileWriter() # Creates the ouput object in PyPDF2
num_pages = textpdf.getNumPages() # The number of pages in the text file
for page in range(num_pages):
basepdf_page = basepdf.getPage(0)
basepdf_page.mergePage(textpdf.getPage(page))
output.addPage(basepdf_page)
outputpdf = open(fileO,'wb')
output.write(outputpdf)
outputpdf.close()
我尝试放置以下代码行:
basepdf_page = basepdf.getPage(0)
在for循环之上,但这不会改变任何内容。
我还尝试了另一种方法,将基本头文件写到文本文件的每个页面上,但是这样做的问题是基本头文件的空白基本上会覆盖文本。这样一来,至少文本会覆盖基本头文件的空白。
如果需要更多信息,请告诉我。同时,我将继续寻找解决方案!
谢谢!
更新:如果每次通过将实例化该对象的代码移动到for循环中来每次刷新basepdf对象,它都将按预期方式工作,因此我已解决了该问题,但我仍然想了解为什么这样做第一次无法按“预期”的方式工作!
from PyPDF2 import PdfFileWriter, PdfFileReader
textpdf = PdfFileReader(open(file1,'rb')) # Reads the text PDF into PyPDF2
num_pages = textpdf.getNumPages() # The number of pages in the text file
output = PdfFileWriter() # Creates the ouput object in PyPDF2
for page in range(num_pages):
basepdf = PdfFileReader(open(file2,'rb')) # Reads the base PDF into PyPDF2
basepdf_page = basepdf.getPage(0)
basepdf_page.mergePage(textpdf.getPage(page))
output.addPage(basepdf_page)
outputpdf = open(fileO,'wb')
output.write(outputpdf)
outputpdf.close()
谢谢!