Exporting a document to PDF: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(Add "cleanup" tag)
(fix/expand snippet to a full working example)
(6 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Cleanup | reason=Auto-imported from ExpressionEngine.}}
{{Cleanup|reason=No print support on mobile platform (iOS), different issues on different targets}}


h1. Exporting a document to PDF
{{LangSwitch}}


Found it very easy to convert a QTextDocument to PDF in Qt. And useful in scenarios like creating reports etc.
Below is a minimal example of how to print a {{DocLink|QTextDocument}} to PDF:


For example, Consider the following snippet,
<code lang="cpp">
#include <QtWidgets>
#ifndef QT_NO_PRINTER
#include <QPrinter>
#endif


<code> QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"),
int main(int argc, char *argv[])
"untitled",tr("PDF Document ('''.pdf)"));
{
QPrinter printer;
    QApplication app(argc, argv);
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setOutputFileName(fileName);
    QString fileName = QFileDialog::getSaveFileName((QWidget* )0, "Export PDF", QString(), "*.pdf");
doc->print(&amp;printer); // doc is QTextDocument'''</code>
    if (QFileInfo(fileName).suffix().isEmpty()) { fileName.append(".pdf"); }


We can use the printer class to print the document to a file : a pdf file.
    QPrinter printer(QPrinter::PrinterResolution);
    printer.setOutputFormat(QPrinter::PdfFormat);
    printer.setPaperSize(QPrinter::A4);
    printer.setOutputFileName(fileName);


'''Categories'''
    QTextDocument doc;
[[snippets]]
    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);
}
</code>
 
[[Category:snippets]]

Revision as of 11:33, 15 October 2015

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.

En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh

Below 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);
}