Рубрики
Без рубрики

Pypdf: как написать PDF в память

Получите практические, реальные навыки Python на наших ресурсах и пути

Автор оригинала: Mike Driscoll.

На моей работе нам иногда нужно писать PDF в память вместо диска, потому что нам нужно объединить на него наложение. Написав в память, мы можем ускорить процесс, поскольку у нас не будет дополнительный шаг записи файла на диск, а затем чтение его снова в память. К сожалению, класс PDFFILEWriter () Pyphdf не предлагает никакой поддержки для извлечения двоичной строки, поэтому вместо этого мы должны вместо этого. Вот пример, где я объединяю два PDF в память:

import pyPdf
from StringIO import StringIO

#----------------------------------------------------------------------
def mergePDFs(pdfOne, pdfTwo):
    """
    Merge PDFs
    """
    tmp = StringIO()
    
    output = pyPdf.PdfFileWriter()
     
    pdfOne = pyPdf.PdfFileReader(file(pdfOne, "rb"))
    for page in range(pdfOne.getNumPages()):
        output.addPage(pdfOne.getPage(page))
    pdfTwo = pyPdf.PdfFileReader(file(pdfTwo, "rb"))
    for page in range(pdfTwo.getNumPages()):
        output.addPage(pdfTwo.getPage(page))
        
    output.write(tmp)
    return tmp.getvalue()
    

if __name__ == "__main__":
    pdfOne = '/path/to/pdf/one'
    pdfTwo = '/path/to/pdf/two'
    pdfObj = mergePDFs(pdfOne, pdfTwo)

Как вы можете видеть, все, что вам нужно сделать, это создать Stringio () Объект, добавьте несколько страниц к PdffileWriter () Объект, а затем напишите данные в свой объект Strundio. Затем для извлечения двоичной строки вы должны позвонить в Shotio GetValue () метод. Просто, верно? Теперь у вас есть файловый объект в памяти, который вы можете использовать для добавления большего количества страниц или наложения OMR Mark On On On On One.

Статьи по Теме

Манипулирование PDFS с Python и Pypdf Pypdf2: || Новая вилка Pypdf