Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
159 views
in Technique[技术] by (71.8m points)

python - 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?

question from:https://stackoverflow.com/questions/65945235/create-a-pdf-file-write-in-it-and-return-its-byte-stream-with-pymupdf

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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())

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...