From 1f92945ee4b8cf748c10754069f382861705c928 Mon Sep 17 00:00:00 2001 From: admin Date: Wed, 25 Feb 2026 16:01:42 -0800 Subject: [PATCH] mupdf added, everything is bytesIO --- app.py | 20 +++++++++++++++++--- templates/passage.css | 2 +- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app.py b/app.py index 90d8892..15bea9e 100644 --- a/app.py +++ b/app.py @@ -1,7 +1,9 @@ from flask import Flask, request, render_template, current_app, send_file import json -from io import BytesIO import zipfile +import fitz # PyMuPDF +import io + from weasyprint import HTML, CSS from bs4 import BeautifulSoup @@ -67,10 +69,22 @@ def index(): #verse_html = "".format(read_css_file()) + verse_html + '' verse_html = ""+ verse_html + '' print(verse_html) - HTML(string=verse_html).write_pdf( - "custom_size.pdf", + pdf_data=HTML(string=verse_html).write_pdf( stylesheets=[CSS(string=read_css_file())] ) + doc = fitz.open(stream=pdf_data, filetype="pdf") + for page_index in range(len(doc)): + page = doc.load_page(page_index) + pix = page.get_pixmap(dpi=240) + + # Convert the rendered image into PNG bytes + png_bytes = pix.tobytes("png") + + # 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.") + + doc.close() + 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) diff --git a/templates/passage.css b/templates/passage.css index 3065ddf..a6b8f5b 100644 --- a/templates/passage.css +++ b/templates/passage.css @@ -7,7 +7,7 @@ } @page { /* Set specific page dimensions: width height */ - size: 9in 4.5in; + size: 8in 4.5in; margin: 0.5in; } .text-html p,