bytesio to create zip file from png bytes, download it
This commit is contained in:
parent
1f92945ee4
commit
fa778d5360
18
app.py
18
app.py
@ -73,6 +73,11 @@ def index():
|
|||||||
stylesheets=[CSS(string=read_css_file())]
|
stylesheets=[CSS(string=read_css_file())]
|
||||||
)
|
)
|
||||||
doc = fitz.open(stream=pdf_data, filetype="pdf")
|
doc = fitz.open(stream=pdf_data, filetype="pdf")
|
||||||
|
|
||||||
|
memory_file = io.BytesIO()
|
||||||
|
|
||||||
|
# Create the zip file in the buffer
|
||||||
|
with zipfile.ZipFile(memory_file, 'w', zipfile.ZIP_DEFLATED) as zf:
|
||||||
for page_index in range(len(doc)):
|
for page_index in range(len(doc)):
|
||||||
page = doc.load_page(page_index)
|
page = doc.load_page(page_index)
|
||||||
pix = page.get_pixmap(dpi=240)
|
pix = page.get_pixmap(dpi=240)
|
||||||
@ -82,9 +87,22 @@ def index():
|
|||||||
|
|
||||||
# You can now send png_bytes to a response or store it in a DB
|
# You can now send png_bytes to a response or store it in a DB
|
||||||
print(f"Page {page_index} is {len(png_bytes)} bytes.")
|
print(f"Page {page_index} is {len(png_bytes)} bytes.")
|
||||||
|
zf.writestr("SLIDES/{:04d}.png".format(page_index), png_bytes)
|
||||||
|
|
||||||
doc.close()
|
doc.close()
|
||||||
|
|
||||||
|
|
||||||
|
# Crucial step: rewind the buffer position to the beginning so the file can be read for download
|
||||||
|
memory_file.seek(0)
|
||||||
|
|
||||||
|
# Send the in-memory file using Flask's send_file
|
||||||
|
return send_file(
|
||||||
|
memory_file,
|
||||||
|
mimetype='application/zip',
|
||||||
|
as_attachment=True,
|
||||||
|
download_name='downloaded_files.zip' # Use download_name for modern Flask versions
|
||||||
|
)
|
||||||
|
|
||||||
print(f"Reference: {reference}, Version: {version}, Text: {verse_text}, Error: {error}")
|
print(f"Reference: {reference}, Version: {version}, Text: {verse_text}, Error: {error}")
|
||||||
|
|
||||||
return render_template('index.html', reference=reference, version=version, verse_html=verse_html, error=error)
|
return render_template('index.html', reference=reference, version=version, verse_html=verse_html, error=error)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user