1import sys
2from PyQt5 import QtGui, QtWidgets
3import popplerqt5
4
5usage = """
6Demo to load a PDF and display the first page.
7
8Usage:
9
10    python demo.py file.pdf
11
12"""
13
14
15def pdf_view(filename):
16    """Return a Scrollarea showing the first page of the specified PDF file."""
17
18    label = QtWidgets.QLabel()
19
20    doc = popplerqt5.Poppler.Document.load(filename)
21    doc.setRenderHint(popplerqt5.Poppler.Document.Antialiasing)
22    doc.setRenderHint(popplerqt5.Poppler.Document.TextAntialiasing)
23
24    page = doc.page(0)
25    image = page.renderToImage()
26
27    label.setPixmap(QtGui.QPixmap.fromImage(image))
28
29    area = QtWidgets.QScrollArea()
30    area.setWidget(label)
31    area.setWindowTitle(filename)
32    return area
33
34
35def main():
36    app = QtWidgets.QApplication(sys.argv)
37    argv = QtWidgets.QApplication.arguments()
38    if len(argv) < 2:
39        sys.stderr.write(usage)
40        sys.exit(2)
41
42    filename = argv[-1]
43    view = pdf_view(filename)
44    view.show()
45    sys.exit(app.exec_())
46
47
48if __name__ == "__main__":
49    main()
50