如何将具体位置的图像添加到pdf中的所有页面?

时间:2019-06-13 21:22:50

标签: python pdf

我需要将图像添加到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文件?

0 个答案:

没有答案