QTextDocument打印到pdf和unicode

时间:2015-08-21 06:38:59

标签: windows qt pdf

我尝试从QTextDocument打印pdf文件。文档内容由setHtml()设置。 简化示例:

QTextDocument document;
document.setHtml("<h1>My html \304\205</h1>"); // Octal encoded ą

QPrinter printer(QPrinter::HighResolution);
printer.setPageSize(QPrinter::A4);
printer.setOutputFormat(QPrinter::PdfFormat);

printer.setOutputFileName("cert.pdf");
document.print(&printer);

它在Windows(msvc)上无法正常工作。我得到pdf文件“?”代替大多数波兰人物。它适用于ubuntu。

在Windows上它使用tahoma字体嵌入子集制作pdf。如何强制QPrinter或QPrintEngine嵌入来自这个(或任何其他)字体的更多字符?

1 个答案:

答案 0 :(得分:0)

佩佩在评论中提出。我需要将这个字符串包装成:

  • 的QString :: fromUtf8
  • tr()(如果加入翻译的部分)
  • 使用html转义序列(例如&amp;#261forę)

我在程序中的原始html是从tr()部分构建的,但我忘了八进制转义其中一些。 (使用gcc,而不是msvc,即使是带有BOM的utf-8)

相关问题