from PySide6.QtCore import QFile from PySide6.QtWidgets import QDialog, QVBoxLayout, QWidget from PySide6.QtPdfWidgets import QPdfView from PySide6.QtPdf import QPdfDocument class PDFViewer(QDialog): pdf_view: QPdfView pdf_document: QPdfDocument def __init__(self, parent: QWidget) -> None: super(PDFViewer, self).__init__(parent) self.pdf_view = QPdfView() self.pdf_document = QPdfDocument() layout = QVBoxLayout(self) layout.addWidget(self.pdf_view) self.setLayout(layout) return def load_pdf(self, file: QFile) -> None: if not file.isOpen(): file.open(file.OpenModeFlag.ReadOnly) self.pdf_document.load(file) self.pdf_view.setDocument(self.pdf_document) self.pdf_view.setPageMode(QPdfView.PageMode.MultiPage) size = self.pdf_document.pagePointSize(1) self.resize(size.toSize()) print(size) return