Создание PDF и написание контента внутри - PyPDF2 - PullRequest
0 голосов
/ 13 сентября 2018

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

import PyPDF2
output = PdfFileWriter()
pdf="pdfte.pdf"
Obj_pdfFile = open(pdf, 'rb')
pdfReader = PyPDF2.PdfFileReader(Obj_pdfFile,strict = False)
pages=pdfReader.numPages
for page in range(pages):
        pageObj = pdfReader.getPage(page)
        pdf_text=pageObj.extractText()
        upper = pdf_text.upper()
        #print(pdf_text)
        output.addPage(input.getPage(upper)) . # I thought this will work but no use..

Я знаю, что нужно вводить "страницу", но в основном смотрю, как сохранить отредактированный текст в новом PDF ... Я знаю, что мне не хватает некоторого кода здесь, как сохранить в PDF и т. Д., Но это именно то, что мне нужно,никогда не работал с pdf. Кроме того, есть ли лучший вариант сделать это?

1 Ответ

0 голосов
/ 18 мая 2019

PyPDF2 удивительно обрабатывает PDF-файлы как документы, но не как редактор.Я хотел сделать то же самое, что вы пытались, но сделал это возможным только с помощью reportlab, как и многие другие ответы здесь.Обратите внимание, что здесь

output.addPage (input.getPage (upper)).# Я думал, что это будет работать, но бесполезно.upper это строка, и getPage () ожидает страницу от PyPDF2.PdfFileReader (pdffile) .getPage (0) Вот что сработало для меня на python 2.7:

    temp = StringIO()
    from reportlab.pdfgen import canvas
    from reportlab.lib.pagesizes import A6 #choose here your size
    can = canvas.Canvas(temp, pagesize=A6)
    can.drawString(10, 405, "Your string on this position")
    can.save()
    temp.seek(0)
    lector = PyPDF2.PdfFileReader(temp)
    output.addPage(lector.getPage(0)) #your pypdf2 writter

теперь выводВаш PDF с прикрепленной строкой, надеюсь, кто-то найдет это полезным.

...