[Megoldva]Python - Qt - PDF
Sziasztok,
A kérdés egyszerű: miért nem működik a következő kód?
from reportlab.pdfgen import canvas
from io import BytesIO
from PyQt6.QtCore import QBuffer, QIODevice
from PyQt6.QtPdf import QPdfDocument
from PyQt6.QtPdfWidgets import QPdfView
from PyQt6.QtWidgets import QApplication, QVBoxLayout, QWidget
def create_pdf_in_qbuffer():
pdf_buffer = BytesIO()
c = canvas.Canvas(pdf_buffer)
c.drawString(100, 750, "Hello, ReportLab in QBuffer!")
c.save()
pdf_buffer.seek(0)
# Save for debugging
with open("debug_output.pdf", "wb") as f:
f.write(pdf_buffer.getvalue())
qbuffer = QBuffer()
qbuffer.open(QIODevice.OpenModeFlag.WriteOnly)
qbuffer.write(pdf_buffer.read())
qbuffer.close()
qbuffer.open(QIODevice.OpenModeFlag.ReadOnly)
return qbuffer
def create_qpdfdocument_from_qbuffer(qbuffer):
if qbuffer.size() == 0:
print("Error: QBuffer is empty.")
return None
pdf_document = QPdfDocument(None)
load_status = pdf_document.load(qbuffer)
if load_status != QPdfDocument.Status.Ready:
print("Failed to load PDF document. Status:", load_status)
return None
return pdf_document
def main():
app = QApplication([])
qbuffer = create_pdf_in_qbuffer()
pdf_document = create_qpdfdocument_from_qbuffer(qbuffer)
if pdf_document is None:
print("Error: Could not create QPdfDocument")
return
pdf_view = QPdfView()
pdf_view.setDocument(pdf_document)
window = QWidget()
layout = QVBoxLayout(window)
layout.addWidget(pdf_view)
window.setWindowTitle("QPdfDocument from QBuffer (Qt6)")
window.resize(800, 600)
window.show()
app.exec()
if __name__ == "__main__":
main()
- Tovább ([Megoldva]Python - Qt - PDF)
- 141 megtekintés