python-3.x - 为什么在尝试使用 PyPDF2 进行“水印”时,此代码不能按“预期”工作?
问题描述
我正在合并 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 循环之上,但这不会改变任何东西。
我也尝试过将基本头文件写入文本文件的每一页的“另一种方式”的方法,但问题是基本头文件的空白基本上会覆盖文本。这样,至少文本会覆盖基本头文件的空白。
如果需要更多信息,请告诉我。同时,我将继续寻找解决方案!
谢谢!
更新:如果我每次刷新 basepdf 对象,通过将实例化该对象的代码移动到 for 循环中,那么它按预期工作,所以我已经解决了这个问题,但我仍然想了解它为什么不能作为第一次“期待”!
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()
谢谢!
解决方案
推荐阅读
- javascript - 用户单击页面上的任意位置后,在 DOM 节点列表中切换“活动”
- apache - 如何使用 Apache 禁用文件夹索引?
- salesforce - 将 HTML5 转换为 Lightning Web 组件
- linux - 使用有限的 C99 标准函数集播种伪随机函数
- r - 将数据框合并到模型矩阵:R
- amazon-dynamodb - DynamoDB Scan获取nodejs上对象的属性
- vowpalwabbit - (Vowpal Wabbit) 上下文强盗问题中的 cb 模式
- vue.js - vuejs中无法通过eventBus检索数据
- r - R中每个ID/按ID的互相关(CCF)
- html - 在没有js的情况下检查复选框时如何切换栏