简体   繁体   中英

Create a pdf file, write in it and return its byte stream with PyMuPDF

Using PyMuPDF, I need to create a PDF file, write some text into it, and return its byte stream.

This is the code I have, but it uses the filesystem to create and save the file:

    import fitz
    path = "PyMuPDF_test.pdf"
    doc = fitz.open()
    page = doc.newPage()
    where = fitz.Point(50, 100)
    page.insertText(where, "PDF created with PyMuPDF", fontsize=50)
    doc.save(path)  # Here Im saving to the filesystem
    with open(path, "rb") as file:
        return io.BytesIO(file.read()).getvalue()

Is there a way I can create a PDF file, write some text in it, and return its byte stream without using the filesystem?

Checking save() I found write() which gives it directly as bytes

import fitz

#path = "PyMuPDF_test.pdf"

doc = fitz.open()
page = doc.newPage()
where = fitz.Point(50, 100)
page.insertText(where, "PDF created with PyMuPDF", fontsize=50)

print(doc.write())

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM