31 lines
957 B
Python
31 lines
957 B
Python
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
|