636 QAbstractPrintDialog.PrintShowPageSize) |
636 QAbstractPrintDialog.PrintShowPageSize) |
637 if not Globals.isWindowsPlatform(): |
637 if not Globals.isWindowsPlatform(): |
638 if FilePrinter.isCupsAvailable(): |
638 if FilePrinter.isCupsAvailable(): |
639 printDialog.setOption(QAbstractPrintDialog.PrintCollateCopies) |
639 printDialog.setOption(QAbstractPrintDialog.PrintCollateCopies) |
640 printDialog.setOption(QAbstractPrintDialog.PrintPageRange) |
640 printDialog.setOption(QAbstractPrintDialog.PrintPageRange) |
641 # TODO: Add Qt 5.8 print support |
|
642 if printDialog.exec_() == QDialog.Accepted: |
641 if printDialog.exec_() == QDialog.Accepted: |
643 if not hasattr(browser.page(), "printToPdf"): |
642 # TODO: enable this once it works correctly in Qt |
644 browser.render(printer) |
643 ## if hasattr(browser.page(), "print"): |
645 else: |
644 ## # Qt >= 5.8.0 |
|
645 ## browser.page().printPage(printer) |
|
646 ## elif hasattr(browser.page(), "printToPdf"): |
|
647 if hasattr(browser.page(), "printToPdf"): |
|
648 # Qt >= 5.7.0 |
646 if printer.outputFormat() == QPrinter.PdfFormat: |
649 if printer.outputFormat() == QPrinter.PdfFormat: |
647 # print to PDF file selected |
650 # print to PDF file selected |
648 browser.page().printToPdf( |
651 browser.page().printToPdf( |
649 lambda pdf: self.__pdfGeneratedForSave( |
652 lambda pdf: self.__pdfGeneratedForSave( |
650 printer.outputFileName(), pdf), |
653 printer.outputFileName(), pdf), |
653 # print to printer |
656 # print to printer |
654 self.__pdfPrinter = printer |
657 self.__pdfPrinter = printer |
655 browser.page().printToPdf( |
658 browser.page().printToPdf( |
656 self.__pdfGeneratedForPrinting, |
659 self.__pdfGeneratedForPrinting, |
657 printer.pageLayout()) |
660 printer.pageLayout()) |
|
661 else: |
|
662 browser.render(printer) |
658 |
663 |
659 @pyqtSlot() |
664 @pyqtSlot() |
660 def printBrowserPdf(self, browser=None): |
665 def printBrowserPdf(self, browser=None): |
661 """ |
666 """ |
662 Public slot called to print the displayed page to PDF. |
667 Public slot called to print the displayed page to PDF. |