Печать QGraphicsScene приводит к низкому качеству вывода

Мой код примерно похож на этот:

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 или, если это должно быть статическое изображение, в несколько раз превышающее текущее разрешение/DPI, чтобы убедиться, что оно чистое и четкое. Если у кого-то есть предложения по улучшению вывода, я был бы очень признателен. Спасибо.

РЕДАКТИРОВАТЬ: кажется, что вывод, отображаемый в PDF, напрямую связан с формой/размером представления, отображающего сцену. Например. если я уменьшаю вид, качество ухудшается. Если я удлиню его в одном направлении, выход тоже удлинится. Я хочу вывести последовательный визуализированный рисунок в высоком качестве независимо от вида. Я подозреваю, что мне нужно будет поместить эту сцену в новый вид фиксированных размеров, используя больший масштаб/окно просмотра, чтобы решить эту проблему.


person William_Wilson    schedule 17.04.2015    source источник


Ответы (1)


Если кому-то нужен пример того, как это сделать, посмотрите qgscomposition.cpp::exportAsPDF в QGIS GIT. Композиция является расширением qGraphicsScene и должна быть непосредственно применима (с некоторыми доработками) к любой задаче.
http://qgis.org/api/2.8/qgscomposition_8cpp_source.html#l02651

person William_Wilson    schedule 20.04.2015