使用Qt将HTML转换为PDF [英] Converting HTML to PDF with Qt
本文介绍了使用Qt将HTML转换为PDF的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试将HTML文件转换为PDF。整个想法是创建一个具有多个页面的pdf,用HTML文件内容填充第一个。目前我想做的就是这样,代码是:
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();
}
但是当我检查输出PDF时,它是一个空页面,页码1在底部。
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?
另外,我注意到当使用QTextStream时,它只会得到
Also, I have noticed that when using QTextStream, it only gets "
推荐答案
使用
htmlContent=in.readAll();
而不是
in >> htmlContent;
这应该可以工作!
这篇关于使用Qt将HTML转换为PDF的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文