簡體   English   中英

QPrinter + QPainter 寫入無效的 PDF 文件

[英]QPrinter + QPainter writes invalid PDF file

我只是想使用 QPrinter + QPainter 為 PDF 文件繪制一個矩形:

#include <QtWidgets>
#include <QPrinter>

int main(int argc, char *argv[]) {
    QApplication a(argc, argv);
    QPrinter printer(QPrinter::HighResolution);
    printer.setOutputFileName("/Users/jason/Desktop/example.pdf");
    printer.setOutputFormat(QPrinter::PdfFormat);

    QPainter painter;
    painter.begin(&printer);
    int width = painter.viewport().width();
    int height = painter.viewport().height();
    painter.setPen(Qt::black);
    painter.drawRect(0.25*width, 0.25*height, 0.5*width, 0.5*height);
    painter.end();
}

使用 MacOS 10.15.4 和 Qt 5.15.2 這會導致一個空白/無效的 PDF 文件。 沒有QPrinter.setOutputFormatQPrinter.setOutputFileName的相同代碼可以在紙上正確打印一個矩形。

如何使用 QPrinter/QPdfWriter + QPainter 繪制到 PDF 文件?

我是個傻瓜。 我以為 PDF 是空白的,但事實證明,如果我放大得很遠,我可以看到一條微弱的灰線。 顯然PDF的分辨率比我的打印機高很多!

使用painter.setPen(QPen(QBrush(Qt::red), 100.0))按預期顯示一個清晰的矩形。

暫無
暫無

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

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