Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.
Exporting a document to PDF: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
Waldyrious (talk | contribs) (fix code rendering) |
||
(11 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
= | {{Cleanup|reason=No print support on mobile platform (iOS), different issues on different targets}} | ||
{{LangSwitch}} | |||
For example, | For a more advanced example that can handle HTML5, see [https://doc.qt.io/qt-6/qtwebengine-webenginewidgets-html2pdf-example.html Qt WebEngine Widgets html2PDF example] | ||
Here is a minimal example of how to print a {{DocLink|QTextDocument}} to PDF: | |||
<syntaxhighlight lang="cpp"> | |||
#include <QtWidgets> | |||
#ifndef QT_NO_PRINTER | |||
#include <QPrinter> | |||
#endif | |||
int main(int argc, char *argv[]) | |||
{ | |||
QApplication app(argc, argv); | |||
QString fileName = QFileDialog::getSaveFileName((QWidget* )0, "Export PDF", QString(), "*.pdf"); | |||
if (QFileInfo(fileName).suffix().isEmpty()) { fileName.append(".pdf"); } | |||
QPrinter printer(QPrinter::PrinterResolution); | |||
printer.setOutputFormat(QPrinter::PdfFormat); | |||
printer.setPaperSize(QPrinter::A4); | |||
printer.setOutputFileName(fileName); | |||
QTextDocument doc; | |||
doc.setHtml("<h1>Hello, World!</h1>\n<p>Lorem ipsum dolor sit amet, consectitur adipisci elit.</p>"); | |||
doc.setPageSize(printer.pageRect().size()); // This is necessary if you want to hide the page number | |||
doc.print(&printer); | |||
} | |||
</syntaxhighlight> | |||
[[Category:snippets]] |
Latest revision as of 23:25, 22 November 2022
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: No print support on mobile platform (iOS), different issues on different targets Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean. |
For a more advanced example that can handle HTML5, see Qt WebEngine Widgets html2PDF example
Here is a minimal example of how to print a QTextDocument to PDF:
#include <QtWidgets>
#ifndef QT_NO_PRINTER
#include <QPrinter>
#endif
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QString fileName = QFileDialog::getSaveFileName((QWidget* )0, "Export PDF", QString(), "*.pdf");
if (QFileInfo(fileName).suffix().isEmpty()) { fileName.append(".pdf"); }
QPrinter printer(QPrinter::PrinterResolution);
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setPaperSize(QPrinter::A4);
printer.setOutputFileName(fileName);
QTextDocument doc;
doc.setHtml("<h1>Hello, World!</h1>\n<p>Lorem ipsum dolor sit amet, consectitur adipisci elit.</p>");
doc.setPageSize(printer.pageRect().size()); // This is necessary if you want to hide the page number
doc.print(&printer);
}