QPrinter 和西里尔文



如何使用西里尔符号打印html?我试图这样做:

QTextDocument *document = new QTextDocument();
document->setHtml(htmlContent);
document->print(printer);

但是文档以错误的编码打印。Html 编码是 utf-8。

假设 htmlContent 是 QString,您可能用错误的编码创建了它。例如,如果原始HTML数据(即字节)是UTF-8,那么您应该使用类似

htmlContent = QString::fromUtf8(myHtmlDataCharPtr);

如果 htmlContent 是指向 UTF-8 数据的字符指针,那么您应该使用

document->setHtml(QString::fromUtf8(htmlContent));

QTextDocument 需要非常正确的 HTML 才能正常运行 - WebKit/Firefox/QWebBrowser 通常接受格式较差的输入,并且仍然正确显示它。因此,将输出写入文件并将其发送到某个HTML检查程序,修复所有问题,然后重试。

最新更新