代码之家  ›  专栏  ›  技术社区  ›  Pinki Sharma

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

  •  1
  • Pinki Sharma  · 技术社区  · 6 年前

    我有一个空白的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 回复  |  直到 6 年前
        1
  •  0
  •   Community CDub    4 年前

    PDF是复杂的结构化文档,如果您只需将两个完整的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