QPrinter+QPainter写入无效的PDF文件



我只是想用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))显示了一个如预期的清晰矩形。

最新更新