0

我只是想使用 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 文件?

4

1 回答 1

0

我是个傻瓜。我以为 PDF 是空白的,但事实证明,如果我放大真的很远,我可以看到一条微弱的灰线。显然,PDF 的分辨率比我的打印机高得多!

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

于 2020-04-23T19:32:01.413 回答