Embedded Linux, Qt4 QPrinter: PDF文件内容粗体丑陋

Embedded Linux, Qt4 QPrinter: PDF file content is bold and ugly

我正在 Qt4.8 中使用 QPrinter 创建 PDF 文件,

QPrinter printer(QPrinter::HighResolution);
QTextDocument document;
document.setHtml(html);

printer.setOrientation(QPrinter::Landscape);
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setPaperSize(QPrinter::A4);
printer.setOutputFileName(fName);
// printer.setFullPage(true);
// printer.setMargins({ 20, 20, 20, 20});
// printer.setPageMargins(QMarginsF(10, 10, 10, 10));
document.documentLayout()->setPaintDevice(&printer);
document.setPageSize(printer.pageRect().size());
document.print(&printer);

但结果是非常丑陋的文字,如图所示(下图中的矩形):

有趣的是,在 this answer 之后,在某些时候我可以得到非常清晰的文本,如图中的顶部矩形。但是在重构过程中似乎发生了一些变化,我无法再获得清晰的 PDF 文件。我尝试了所有可能的方法。没有结果。你能帮帮我吗?

顺便说一句,在 Ubuntu 笔记本电脑中,PDF 文件很好,但在目标设备(嵌入式 Linux)中生成的 PDF 不清晰。

PS: 我忘了提交工作代码,因此出现了这个问题。

看来问题根本不是关于 QPrinter 的。重构时,我更改了 QTextDocument 的 html 内容,不支持的 CSS 导致了问题。我改变了这个:

body {
    font-family: "Helvetica, Arial, sans-serif";  // quotes are not supported
    font-style: normal;
    font-size: 12px;
}
table.bordered , .bordered th, .bordered td {
    text-align: center;   // this is not supported also
    border-width: 1px;
    border-collapse: collapse;
    font-weight: normal;
}

为此:

table.bordered, .bordered th, .bordered td {
   border-width: 1px;
   border-collapse: collapse;
   font-weight: normal;
   font-family: Arial, sans-serif;
   font-size: 12px;
}

现在可以了。