我在 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:我忘了提交作業代碼,因此出現了這個問題。
uj5u.com熱心網友回復:
似乎問題根本不在于 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;
}
現在它正在作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/403824.html
標籤:
