我一直在尝试通过通过PyPDF2向PDFs添加水印作为水印来加快日期戳过程。我在网上找到了下面的代码,因为我是编码的新手。
当我运行它时,它似乎可以工作,但是文件已损坏,无法打开。有谁知道我要去哪里错了?
from PyPDF2 import PdfFileWriter, PdfFileReader
def create_watermark(input_pdf, output_pdf, watermark):
watermark_obj = PdfFileReader(watermark,False,)
watermark_page = watermark_obj.getPage(0)
pdf_reader = PdfFileReader(input_pdf)
pdf_writer = PdfFileWriter()
# Watermark all the pages
for page in range(pdf_reader.getNumPages()):
page = pdf_reader.getPage(page)
page.mergePage(watermark_page)
pdf_writer.addPage(page)
with open(input_pdf, 'wb') as out:
pdf_writer.write(out)
if __name__ == '__main__':
input_pdf = "C:\\Users\\A***\\OneDrive - ***\\Desktop\\Invoice hold\\Test\\1.pdf"
output_pdf = "C:\\Users\\A***\\OneDrive - ***\\Desktop\\Invoice hold\\Test\\1 WM.pdf"
watermark = "C:\\Users\\A***\\OneDrive - ***\\Desktop\\Invoice hold\\WM.pdf"
create_watermark(input_pdf,output_pdf,watermark)
如果您想将pdf文件保存为output_pdf,
尝试这个 :
result = open(output_pdf, 'wb')
pdf_writer.write(result)
您的代码:
with open(input_pdf, 'wb') as out:
pdf_writer.write(out)
您的代码将覆盖input_pdf。
如果工作时出现问题,则pdf文件将被损坏。
我通过应用您的代码和建议的方法成功插入了水印。
我建议检查pdf文件是否未损坏。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句