Qt,打印以不同的输出格式保存元素的相对位置

时间:2013-09-13 13:39:21

标签: qt printing

以不同的输出格式打印文档时遇到一些问题。我必须保存(以pdf格式)并使用普通打印机打印相同的文档。这个文档有一个我用svg格式绘制的网格,一些字段和图像。

除了istruction之外,制作此文档的函数是相同的:

printer->setOutputFormat(QPrinter::NativeFormat);

代码非常简单:

QSvgRenderer *r;
r = new QSvgRenderer(QString("PrintModelWithoutNote.svg"));

QPrinter *printer = new QPrinter();
QPainter *paint = new QPainter();

if(pdf){
    printer->setOutputFormat(QPrinter::PdfFormat);
    printer->setOutputFileName("pdf_file.pdf");
}else{
    printer->setOutputFormat(QPrinter::NativeFormat);
}

paint->begin(printer);
r->render(paint);

paint->drawText(QPointF(10, 10), "Test1");
paint->drawText(QPointF(50, 50), "Test2");
paint->end();

问题是我决定了pdf格式的文本位置,以便与svg中的网格对齐。当我以原生格式打印时,文本与网格失去对齐。

我做了几次测试,删除或添加页边距但没有成功。我唯一感兴趣的是保持对齐。有人对我有什么建议吗?

我希望我能很好地解释我的问题。提前谢谢。

0 个答案:

没有答案