0
我嘗試從QTextDocument打印pdf文件。文檔內容由setHtml()設置。 簡化示例:QTextDocument打印爲pdf和unicode
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。
在窗口它使pdf與tahoma字體嵌入子集。如何強制QPrinter或QPrintEngine從此(或任何其他)字體嵌入更多字符?
'setHtml'調用*非常*可疑。請明確創建一個QString,然後使用qDebug()將其轉儲,然後將其傳遞給'setHtml'。 – peppe
將此文本轉儲到qDebug()在控制檯中給出了相同的結果(波蘭語字母中的問號)。 這個八進制編碼是可疑的?我從uic生成的文件中獲取它,並且它在我從代碼設置小部件文本時起作用。 – Dorian
這是因爲'const char *' - >'QString'轉換可能無法達到你想要的效果(特別是在Qt 4上)。你在使用它嗎?是否使用QString :: fromUtf8代替?如何使用相應的HTML轉義? – peppe