我尝试从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嵌入来自这个(或任何其他)字体的更多字符?
答案 0 :(得分:0)
佩佩在评论中提出。我需要将这个字符串包装成:
我在程序中的原始html是从tr()部分构建的,但我忘了八进制转义其中一些。 (使用gcc,而不是msvc,即使是带有BOM的utf-8)