From 5ac886fa0e82701bc8af8dbf637d7e8cb63db7fc Mon Sep 17 00:00:00 2001 From: Pascal de Bruijn Date: Thu, 2 Jan 2025 17:39:25 +0100 Subject: [PATCH] Add proper PDF creator metadata --- src/Gui/ApplicationPy.cpp | 10 ++++++++++ src/Gui/EditorView.cpp | 10 ++++++++++ src/Gui/MDIView.cpp | 10 ++++++++++ src/Gui/View3DInventor.cpp | 11 +++++++++++ src/Mod/Drawing/Gui/DrawingView.cpp | 9 +++++++++ src/Mod/Spreadsheet/Gui/SpreadsheetView.cpp | 11 +++++++++++ src/Mod/TechDraw/Gui/PagePrinter.cpp | 17 +++++++++++++++++ 7 files changed, 78 insertions(+) diff --git a/src/Gui/ApplicationPy.cpp b/src/Gui/ApplicationPy.cpp index fbe522eef1..defc585675 100644 --- a/src/Gui/ApplicationPy.cpp +++ b/src/Gui/ApplicationPy.cpp @@ -36,6 +36,7 @@ #include +#include #include #include #include @@ -777,6 +778,15 @@ PyObject* ApplicationPy::sExport(PyObject * /*self*/, PyObject *args) printer.setPdfVersion(QPagedPaintDevice::PdfVersion_A1b); printer.setOutputFormat(QPrinter::PdfFormat); printer.setOutputFileName(fileName); + + QString appname = QCoreApplication::applicationName(); + auto config = App::Application::Config(); + QString major = QString::fromUtf8(config["BuildVersionMajor"].c_str()); + QString minor = QString::fromUtf8(config["BuildVersionMinor"].c_str()); + QString point = QString::fromUtf8(config["BuildVersionPoint"].c_str()); + QString suffix = QString::fromUtf8(config["BuildVersionSuffix"].c_str()); + printer.setCreator(QString::fromUtf8("%1 %2.%3.%4%5").arg(appname, major, minor, point, suffix)); + view->print(&printer); } } diff --git a/src/Gui/EditorView.cpp b/src/Gui/EditorView.cpp index 0f7e94fb67..69c39d2b77 100644 --- a/src/Gui/EditorView.cpp +++ b/src/Gui/EditorView.cpp @@ -56,6 +56,7 @@ #include #include #include +#include using namespace Gui; @@ -511,6 +512,15 @@ void EditorView::printPdf() printer.setPdfVersion(QPagedPaintDevice::PdfVersion_A1b); printer.setOutputFormat(QPrinter::PdfFormat); printer.setOutputFileName(filename); + + QString appname = QCoreApplication::applicationName(); + auto config = App::Application::Config(); + QString major = QString::fromUtf8(config["BuildVersionMajor"].c_str()); + QString minor = QString::fromUtf8(config["BuildVersionMinor"].c_str()); + QString point = QString::fromUtf8(config["BuildVersionPoint"].c_str()); + QString suffix = QString::fromUtf8(config["BuildVersionSuffix"].c_str()); + printer.setCreator(QString::fromUtf8("%1 %2.%3.%4%5").arg(appname, major, minor, point, suffix)); + d->textEdit->document()->print(&printer); } } diff --git a/src/Gui/MDIView.cpp b/src/Gui/MDIView.cpp index 3b3554664f..c3ece9aed2 100644 --- a/src/Gui/MDIView.cpp +++ b/src/Gui/MDIView.cpp @@ -39,6 +39,7 @@ #include #include +#include #include "MDIView.h" #include "MDIViewPy.h" @@ -264,6 +265,15 @@ void MDIView::printPdf() printer.setPdfVersion(QPagedPaintDevice::PdfVersion_A1b); printer.setOutputFormat(QPrinter::PdfFormat); printer.setOutputFileName(filename); + + QString appname = QCoreApplication::applicationName(); + auto config = App::Application::Config(); + QString major = QString::fromUtf8(config["BuildVersionMajor"].c_str()); + QString minor = QString::fromUtf8(config["BuildVersionMinor"].c_str()); + QString point = QString::fromUtf8(config["BuildVersionPoint"].c_str()); + QString suffix = QString::fromUtf8(config["BuildVersionSuffix"].c_str()); + printer.setCreator(QString::fromUtf8("%1 %2.%3.%4%5").arg(appname, major, minor, point, suffix)); + print(&printer); } } diff --git a/src/Gui/View3DInventor.cpp b/src/Gui/View3DInventor.cpp index 864f99dd66..c67043589f 100644 --- a/src/Gui/View3DInventor.cpp +++ b/src/Gui/View3DInventor.cpp @@ -50,6 +50,8 @@ # include #endif + +#include #include #include #include @@ -257,6 +259,15 @@ void View3DInventor::printPdf() printer.setOutputFormat(QPrinter::PdfFormat); printer.setPageOrientation(QPageLayout::Landscape); printer.setOutputFileName(filename); + + QString appname = QCoreApplication::applicationName(); + auto config = App::Application::Config(); + QString major = QString::fromUtf8(config["BuildVersionMajor"].c_str()); + QString minor = QString::fromUtf8(config["BuildVersionMinor"].c_str()); + QString point = QString::fromUtf8(config["BuildVersionPoint"].c_str()); + QString suffix = QString::fromUtf8(config["BuildVersionSuffix"].c_str()); + printer.setCreator(QString::fromUtf8("%1 %2.%3.%4%5").arg(appname, major, minor, point, suffix)); + print(&printer); } } diff --git a/src/Mod/Drawing/Gui/DrawingView.cpp b/src/Mod/Drawing/Gui/DrawingView.cpp index d554d00fa5..18061976e0 100644 --- a/src/Mod/Drawing/Gui/DrawingView.cpp +++ b/src/Mod/Drawing/Gui/DrawingView.cpp @@ -529,6 +529,15 @@ void DrawingView::printPdf() printer.setFullPage(true); printer.setOutputFormat(QPrinter::PdfFormat); printer.setOutputFileName(filename); + + QString appname = QCoreApplication::applicationName(); + auto config = App::Application::Config(); + QString major = QString::fromUtf8(config["BuildVersionMajor"].c_str()); + QString minor = QString::fromUtf8(config["BuildVersionMinor"].c_str()); + QString point = QString::fromUtf8(config["BuildVersionPoint"].c_str()); + QString suffix = QString::fromUtf8(config["BuildVersionSuffix"].c_str()); + printer.setCreator(QString::fromUtf8("%1 Drawing %2.%3.%4%5").arg(appname, major, minor, point, suffix)); + printer.setPageOrientation(m_orientation); QList items = listWidget->selectedItems(); if (items.size() == 1) { diff --git a/src/Mod/Spreadsheet/Gui/SpreadsheetView.cpp b/src/Mod/Spreadsheet/Gui/SpreadsheetView.cpp index fb276b562a..d11f287ac9 100644 --- a/src/Mod/Spreadsheet/Gui/SpreadsheetView.cpp +++ b/src/Mod/Spreadsheet/Gui/SpreadsheetView.cpp @@ -23,6 +23,7 @@ #include "PreCompiled.h" #ifndef _PreComp_ +#include #include #include #include @@ -30,6 +31,7 @@ #include #endif +#include #include #include #include @@ -307,6 +309,15 @@ void SheetView::printPdf() printer.setPageOrientation(QPageLayout::Landscape); printer.setOutputFormat(QPrinter::PdfFormat); printer.setOutputFileName(filename); + + QString appname = QCoreApplication::applicationName(); + auto config = App::Application::Config(); + QString major = QString::fromUtf8(config["BuildVersionMajor"].c_str()); + QString minor = QString::fromUtf8(config["BuildVersionMinor"].c_str()); + QString point = QString::fromUtf8(config["BuildVersionPoint"].c_str()); + QString suffix = QString::fromUtf8(config["BuildVersionSuffix"].c_str()); + printer.setCreator(QString::fromUtf8("%1 Spreadsheet %2.%3.%4%5").arg(appname, major, minor, point, suffix)); + print(&printer); } } diff --git a/src/Mod/TechDraw/Gui/PagePrinter.cpp b/src/Mod/TechDraw/Gui/PagePrinter.cpp index 5ce473f019..06c23813bf 100644 --- a/src/Mod/TechDraw/Gui/PagePrinter.cpp +++ b/src/Mod/TechDraw/Gui/PagePrinter.cpp @@ -188,6 +188,15 @@ void PagePrinter::printAllPdf(QPrinter* printer, App::Document* doc) pdfWriter.setPdfVersion(QPagedPaintDevice::PdfVersion_A1b); pdfWriter.setTitle(documentName); + + QString appname = QCoreApplication::applicationName(); + auto config = App::Application::Config(); + QString major = QString::fromUtf8(config["BuildVersionMajor"].c_str()); + QString minor = QString::fromUtf8(config["BuildVersionMinor"].c_str()); + QString point = QString::fromUtf8(config["BuildVersionPoint"].c_str()); + QString suffix = QString::fromUtf8(config["BuildVersionSuffix"].c_str()); + pdfWriter.setCreator(QString::fromUtf8("%1 TechDraw %2.%3.%4%5").arg(appname, major, minor, point, suffix)); + pdfWriter.setResolution(printer->resolution()); QPageLayout pageLayout = printer->pageLayout(); // we want to set the layout for the first page before we make the painter(&pdfWriter) or the layout for the first page will @@ -356,6 +365,14 @@ void PagePrinter::printPdf(ViewProviderPage* vpPage, const std::string& file) pdfWriter.setTitle(documentName); // default pdfWriter dpi is 1200. + QString appname = QCoreApplication::applicationName(); + auto config = App::Application::Config(); + QString major = QString::fromUtf8(config["BuildVersionMajor"].c_str()); + QString minor = QString::fromUtf8(config["BuildVersionMinor"].c_str()); + QString point = QString::fromUtf8(config["BuildVersionPoint"].c_str()); + QString suffix = QString::fromUtf8(config["BuildVersionSuffix"].c_str()); + pdfWriter.setCreator(QString::fromUtf8("%1 TechDraw %2.%3.%4%5").arg(appname, major, minor, point, suffix)); + // set up the page layout auto dPage = vpPage->getDrawPage(); double width = A4Heightmm; // default to A4 Landscape 297 x 210