1

私のコードはおおよそ次のようになります。

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();

私のシーンには、現在表示されている解像度と 100 以上のズーム スケールで完全に表示される SVG 画像がいくつかあるため、ソースの品質は問題になりません。ただし、PDF 出力の品質はひどいものです。出力を SVG として喜んでレンダリングします。または、現在の解像度/DPI の数倍の静止画像である必要がある場合は、クリーンでクリアであることを確認します。誰かが出力を改善する方法について提案があれば、私は非常に感謝しています. ありがとう。

編集: PDF にレンダリングされた出力は、シーンを表示しているビューの形状/サイズに直接関連付けられているようです。たとえば、ビューを縮小すると、品質が低下します。一方向に伸ばすと、出力も伸びます。ビューに関係なく、一貫したレンダリングされた図面を高品質で出力したいと考えています。この問題を解決するには、より大きなスケール/ビューポートを使用して、このシーンを固定寸法の新しいビューに配置する必要があると思います。

4

1 に答える 1

0

これを行う方法の例が必要な場合は、QGIS GIT 内の qgscomposition.cpp::exportAsPDF をチェックしてください。コンポジションは qGraphicsScene の拡張であり、誰のタスクにも直接適用できる必要があります (多少の手直しが必要です)。
http://qgis.org/api/2.8/qgscomposition_8cpp_source.html#l02651

于 2015-04-20T16:12:18.687 に答える