Мне нужно добавить изображение ко всем страницам в 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?