Проблема при объединении различного текста на фоновом изображении, как нескольких страниц в PDF, в Python.[Python][PyPDF2][Reportlab]

page = existing_pdf.getPage(0)
page.mergePage(new_pdf.getPage(0))
output.addPage(page)
page = existing_pdf.getPage(0)
page.mergePage(new_pdf.getPage(1))
output.addPage(page)

Здесь Существующий_pdf - это фоновое изображение в формате pdf, которое будет объединено в другой PDF, состоящий только из текста.

Моя цель - создать один большой PDF-файл, состоящий из нескольких страниц с одинаковым фоном, но с другим текстом.

Классическим примером будет форма, в которой задан формат (фон), а затем заполняются детали этого формата (фон) для разных пользователей.

Я использовал IOBuffer как временный PDF. Мой полный код ниже

from PyPDF2 import PdfFileWriter, PdfFileReader
import io
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter,A4

h,w = A4

existing_pdf = PdfFileReader(open("design.pdf", "rb"))

packet = io.BytesIO()
# create a new PDF with Reportlab
can = canvas.Canvas(packet, pagesize=A4)

#Itreative section

can.drawString(0,0, "Hello world")
can.showPage()
can.drawString(0,0, "Neel Mishra")

#Itreative portion ends

can.save()

#move to the beginning of the StringIO buffer
packet.seek(0)
new_pdf = PdfFileReader(packet)
# read your existing PDF

output = PdfFileWriter()
# add the "watermark" (which is the new pdf) on the existing page

for page in new_pdf.pages:
    print('Hello')

page = existing_pdf.getPage(0)
page.mergePage(new_pdf.getPage(0))
output.addPage(page)
page = existing_pdf.getPage(0)
page.mergePage(new_pdf.getPage(1))
output.addPage(page)
# finally, write "output" to a real file
outputStream = open("destination.pdf", "wb")
output.write(outputStream)
outputStream.close()

Однако всякий раз, когда я запускаю код, я получаю одну проблему; то есть текст перекрывается, а затем перекрываются результаты. Вы можете запустить код.

Требования: Reportlab PyPDF2 Python 3.6

Я новичок, поэтому, пожалуйста, помогите мне с сообществом стека, я старался изо всех сил, чтобы сформулировать свой вопрос; однако, если вы обнаружите какие-либо ошибки, пожалуйста, предложите внести изменения, прежде чем голосовать.

Спасибо.

0 ответов

Другие вопросы по тегам