Add proper PDF creator metadata

This commit is contained in:
Pascal de Bruijn
2025-01-02 17:39:25 +01:00
committed by WandererFan
parent 7c32d9780b
commit f980fdaede
7 changed files with 78 additions and 0 deletions

View File

@@ -36,6 +36,7 @@
#include <boost/regex.hpp>
#include <App/Application.h>
#include <App/DocumentObjectPy.h>
#include <App/DocumentPy.h>
#include <App/PropertyFile.h>
@@ -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);
}
}

View File

@@ -56,6 +56,7 @@
#include <Base/Exception.h>
#include <Base/Interpreter.h>
#include <Base/Parameter.h>
#include <App/Application.h>
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);
}
}

View File

@@ -39,6 +39,7 @@
#include <Base/Interpreter.h>
#include <App/Document.h>
#include <App/Application.h>
#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);
}
}

View File

@@ -50,6 +50,8 @@
# include <Inventor/SoPickedPoint.h>
#endif
#include <App/Application.h>
#include <App/Document.h>
#include <App/GeoFeature.h>
#include <Base/Builder3D.h>
@@ -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);
}
}

View File

@@ -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<QListWidgetItem*> items = listWidget->selectedItems();
if (items.size() == 1) {

View File

@@ -23,6 +23,7 @@
#include "PreCompiled.h"
#ifndef _PreComp_
#include <QApplication>
#include <QPalette>
#include <QPrintDialog>
#include <QPrintPreviewDialog>
@@ -30,6 +31,7 @@
#include <QTextDocument>
#endif
#include <App/Application.h>
#include <App/DocumentObject.h>
#include <App/Range.h>
#include <Base/Tools.h>
@@ -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);
}
}

View File

@@ -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