打印 QGraphicsScene 产生低质量输出

Printing QGraphicsScene Produces Low Quality Output

我的代码大致如下:

QGraphicsScene* pScene( pMap->scene() );

QPrinter printer;
printer.setResolution( 1200 ); //tried many values and QPrinter::PrinterMode
printer.setOutputFileName( "test.pdf" );
printer.setPageSize( QPrinter::A4 );
printer.setOutputFormat( QPrinter::PdfFormat );

QPainter painter( &printer );
pScene->render( &painter );
painter.end();

在我的场景中有一些 SVG 图像可以在当前显示的分辨率和超过 100 倍的缩放比例下完美显示,因此源质量不是问题。然而,PDF 输出的质量很差。 我很乐意将输出渲染为 SVG,或者如果它必须是当前 resolution/DPI 数倍的静态图像,以确保它干净清晰。 如果有人对如何改进输出提出建议,我将不胜感激。谢谢

编辑: 似乎呈现到 PDF 中的输出直接绑定到显示场景的视图的 shape/size。例如。如果我缩小视图,质量会变差。如果我在一个方向上拉长它,输出也会拉长。 无论视图如何,我都希望以高质量输出一致的渲染图。 我怀疑我需要使用更大的 scale/viewport 将此场景放入固定尺寸的新视图中才能解决此问题。

如果有人需要如何执行此操作的示例,请查看 QGIS GIT 中的 qgscomposition.cpp::exportAsPDF。该组合是 qGraphicsScene 的扩展,应该直接适用于(经过一些修改)任何人的任务。
http://qgis.org/api/2.8/qgscomposition_8cpp_source.html#l02651