簡體   English   中英

嵌入式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);

但結果是非常難看的文本,如下圖所示(下圖中的矩形): 在此處輸入圖像描述

有趣的是,按照這個答案,在某些時候我可以得到一個非常清晰的文本,就像圖像頂部的矩形一樣。 但是在重構過程中,某些東西似乎發生了變化,我無法再清楚 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;
}

現在它正在工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM