我需要将图像添加到pdf文件的所有页面中。你能帮我吗?
我已经尝试使用以下解决方案:
https://stackabuse.com/working-with-pdfs-in-python-adding-images-and-watermarks/
我用图像生成了pdf文件。之后,我使用mergePage
中的PyPDF2
创建了一个文档。不幸的是,结果我得到的文件中所有页面只有我的图像,而没有原始pdf内容。
从图片生成pdf的代码:
import os
import numpy as np
from matplotlib.backends.backend_pdf import PdfPages
import matplotlib.pyplot as plt
from scipy.misc import imread
MM_TO_INCHES = 0.0393700787401575
page_size = [210, 297]
output_pdf_file_path = os.path.join("logo" + '.pdf')
output_pdf = PdfPages(output_pdf_file_path)
fig = plt.figure(figsize=[page_size[0]*MM_TO_INCHES, page_size[1]*MM_TO_INCHES], dpi=100, frameon=False)
im1 = imread(os.path.join("docs", "logo.png")).astype(np.float32) / 255
# image localization
plt.subplots_adjust(left=35/page_size[0],right=1 - 150/page_size[0], bottom=275.5 / page_size[1], top=1 - 19/page_size[1])
plt.imshow(im1)
plt.axis("off")
output_pdf.savefig(plt.gcf())
output_pdf.close()
连接pdf文件的代码:
from PyPDF2 import PdfFileWriter, PdfFileReader
def create_watermark(input_pdf, output, watermark):
watermark_obj = PdfFileReader(watermark)
watermark_page = watermark_obj.getPage(0)
pdf_reader = PdfFileReader(input_pdf)
pdf_writer = PdfFileWriter()
for page in range(pdf_reader.getNumPages()):
page = pdf_reader.getPage(page)
page.mergePage(watermark_page)
pdf_writer.addPage(page)
with open(output, 'wb') as out:
pdf_writer.write(out)
create_watermark(
input_pdf='input.pdf',
output='output.pdf',
watermark='logo.pdf')
该如何修复?
是否可以在不生成额外pdf的情况下将图像添加到pdf文件?