summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mainwindow.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index fd7d9ee..eda1e14 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -27,6 +27,7 @@
#include <QImage>
#include <QSvgGenerator>
#include <QSettings>
+#include <QPrinter>
#include <QMessageBox>
#include <QDebug>
#include <QDockWidget>
@@ -482,6 +483,7 @@ MainWindow::exportPNG()
{
QStringList filters;
filters << "Portable Network Graphics (*.png)";
+ filters << "Portable Document Format (*.pdf)";
filters << "Scalable Vector Graphics (*.svg)";
QString fileName = QFileDialog::getSaveFileName(this, QString(), QString(), filters.join(";;"));
if (!fileName.isNull()) {
@@ -497,6 +499,16 @@ MainWindow::exportPNG()
m_model->render(&painter, QRectF(), boundingRect);
m_model->setPrinting(false);
}
+ else if (fileName.endsWith(".pdf", Qt::CaseInsensitive)) {
+ QPrinter printer;
+ printer.setOutputFormat(QPrinter::PdfFormat);
+ printer.setOutputFileName(fileName);
+ QPainter painter(&printer);
+ painter.setRenderHints(QPainter::HighQualityAntialiasing | QPainter::Antialiasing);
+ m_model->setPrinting(true);
+ m_model->render(&painter, QRectF(), boundingRect);
+ m_model->setPrinting(false);
+ }
else if (fileName.endsWith(".png", Qt::CaseInsensitive)) {
QImage image(size, QImage::Format_RGB32);
QPainter painter(&image);