Converting HTML to PDF with Qt
c++, pdf, qt
Solution
Use
htmlContent=in.readAll();
Instead of
in >> htmlContent;
This should work!
Problem
I'm trying to convert an HTML file to PDF. The whole idea is to create a pdf with many pages, filling the first one with the HTML file contents. Currently I'm trying to do just that, and the code is: ``` #include "qprinterexample.h" #include <QtGui/QApplication> #include <QTextDocument> #include <QTextStream> #include <QFile> #include <QPrinter> #include <QDir> int print(){ const int highQualityDPI = 300; QDir::setCurrent(QCoreApplication::applicationDirPath()); QFile htmlFile ("ejemplo.htm"); if (!htmlFile.open(QIODevice::ReadOnly | QIODevice::Text)){ return -1; } QString htmlContent; QTextStream in(&htmlFile); in >> htmlContent; QTextDocument *document = new QTextDocument(); document->setHtml(htmlContent); QPrinter printer(QPrinter::HighResolution); printer.setPageSize(QPrinter::A4); printer.setOutputFormat(QPrinter::PdfFormat); printer.setOutputFileName("output.pdf"); document->print(&printer); delete document; return 0; } int main(int argc, char *argv[]) { QApplication a(argc, argv); QPrinterExample w; if(print()<0) return -1; w.show(); return a.exec(); } ``` But when I check the output PDF, it's an empty page, just with the page number 1 at the bottom. What am I doing wrong? Also, I have noticed that when using QTextStream, it only gets "