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;
}
现在可以了。
我正在 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;
}
现在可以了。