使用python在pdf文件中附加字节内容

时间:2018-05-16 06:23:44

标签: python-3.x pdf append

我有一个空白的pdf文件。我得到一些字节的内容并写在这个pdf文件中。我又得到了一些字节,我想将它附加到现有的pdf文件中。我尝试在'ab'和'a + b'模式下打开pdf文件,但内容不会附加覆盖。请帮助我实现这一目标。

这是代码 -

get_view_pdf_url = "http://localhost:8000/api/3.0/sites/a18ab9c9-c523-4848-9199-8c50e100ac36/views/e948dd8c-31b1-480a-8123-fecf47b1c682/pdf"
reqPDF = requests.get(get_view_pdf_url, data=b'', headers={'x-tableau-auth': token})
reqPDF.raise_for_status()
print((reqPDF.content))
filename = "C:/Users/pinki.sharma/Desktop/Work/tempmon/pinkiTest.pdf"
with open(filename, 'wb') as f:
    f.write(reqPDF.content)
    f.close()

get_view_pdf1_url = "http://localhost:8000/api/3.0/sites/a18ab9c9-c523-4848-9199-8c50e100ac36/views/910d1215-59cb-4d63-95fd-7a2b224f18bc/pdf"
reqPDF1 = requests.get(get_view_pdf1_url, data=b'', headers={'x-tableau-auth': token})
reqPDF1.raise_for_status()
print((reqPDF1.content))

with open(filename, 'a+b') as f1:
    f1.write(reqPDF1.content)
    f1.close()

1 个答案:

答案 0 :(得分:0)

PDF是复杂的结构化文档,如果你只是逐个字节地粘贴2个完整的pdf文件,你会得到一个更大的文件,但只会看到最后一个文档。

就好像你有10页并且你在下一页上面粘上一页 - 你的堆栈变得越来越大但你只能访问顶层。

如果你想将一个pdf的页面添加到另一个pdf中,你必须将它们插入第一个pdf的正确部分 - this answer by @ImportanceOfBeingErnest:

中描述了一种方法。
  

您可能希望使用pyPdf

    # Merge two PDFs
    from pyPdf import PdfFileReader, PdfFileWriter

    output = PdfFileWriter()
    pdfOne = PdfFileReader(file( "some\path\to\a\PDf", "rb"))
    pdfTwo = PdfFileReader(file("some\other\path\to\a\PDf", "rb"))

    output.addPage(pdfOne.getPage(0))
    output.addPage(pdfTwo.getPage(0))

    outputStream = file(r"output.pdf", "wb")
    output.write(outputStream)
    outputStream.close()
     

example taken from here