filter/source/pdf/pdfexport.cxx | 14 +++++++++---- officecfg/registry/schema/org/openoffice/Office/Common.xcs | 8 +++++++ unotools/source/config/docinfohelper.cxx | 5 ++++ vcl/source/filter/eps/eps.cxx | 10 +++++++-- 4 files changed, 31 insertions(+), 6 deletions(-)
New commits: commit 14bfb0933073e5bf8ce4f810c38e91125066257a Author: Luboš Luňák <l.lu...@collabora.com> AuthorDate: Mon Apr 4 09:50:26 2022 +0200 Commit: Luboš Luňák <l.lu...@collabora.com> CommitDate: Fri Apr 8 18:46:38 2022 +0200 allow to override the generator/producer string in output documents Add a (non-gui) setting GeneratorOverride that, if set, is used for odt/docx/pdf generator string identifying the application that has written it instead of the normal productname etc. string. Change-Id: Ibe12a063e7e6b5a09c69cdf66cba073793650d62 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132495 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lu...@collabora.com> diff --git a/filter/source/pdf/pdfexport.cxx b/filter/source/pdf/pdfexport.cxx index d6f451f8392d..9b07ae1a9306 100644 --- a/filter/source/pdf/pdfexport.cxx +++ b/filter/source/pdf/pdfexport.cxx @@ -38,6 +38,7 @@ #include <unotools/configmgr.hxx> #include <cppuhelper/compbase.hxx> #include <cppuhelper/basemutex.hxx> +#include <officecfg/Office/Common.hxx> #include "pdfexport.hxx" #include <strings.hrc> @@ -479,10 +480,15 @@ bool PDFExport::Export( const OUString& rFile, const Sequence< PropertyValue >& } } // getting the string for the producer - aContext.DocumentInfo.Producer = - utl::ConfigManager::getProductName() + - " " + - utl::ConfigManager::getProductVersion(); + OUString aProducerOverride = officecfg::Office::Common::Save::Document::GeneratorOverride::get(); + if( !aProducerOverride.isEmpty()) + aContext.DocumentInfo.Producer = aProducerOverride; + else + aContext.DocumentInfo.Producer = + utl::ConfigManager::getProductName() + + " " + + utl::ConfigManager::getProductVersion(); + aContext.DocumentInfo.Creator = aCreator; OUString aSignCertificateSubjectName; diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs index d1b16d62554b..781dcde05734 100644 --- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs @@ -2391,6 +2391,14 @@ </info> <value>true</value> </prop> + <prop oor:name="GeneratorOverride" oor:type="xs:string" oor:nillable="false"> + <info> + <desc>If set, the value will be used as the generator information saved + in documents. Note that the generator information may affect document import + and using an inappropriate value here may change how the document is imported.</desc> + </info> + <value></value> + </prop> </group> <group oor:name="Graphic"> <info> diff --git a/unotools/source/config/docinfohelper.cxx b/unotools/source/config/docinfohelper.cxx index 7e605d187c75..735f0ac2d56e 100644 --- a/unotools/source/config/docinfohelper.cxx +++ b/unotools/source/config/docinfohelper.cxx @@ -22,6 +22,7 @@ #include <unotools/bootstrap.hxx> #include <unotools/docinfohelper.hxx> #include <rtl/bootstrap.hxx> +#include <officecfg/Office/Common.hxx> using namespace ::com::sun::star; @@ -30,6 +31,10 @@ namespace utl OUString DocInfoHelper::GetGeneratorString() { + OUString aResultOverride = officecfg::Office::Common::Save::Document::GeneratorOverride::get(); + if( !aResultOverride.isEmpty()) + return aResultOverride; + OUStringBuffer aResult(128); // First product: branded name + version diff --git a/vcl/source/filter/eps/eps.cxx b/vcl/source/filter/eps/eps.cxx index 374b4c78218b..bb25bdccb57e 100644 --- a/vcl/source/filter/eps/eps.cxx +++ b/vcl/source/filter/eps/eps.cxx @@ -39,6 +39,7 @@ #include <strings.hrc> #include <osl/diagnose.h> #include <com/sun/star/task/XStatusIndicator.hpp> +#include <officecfg/Office/Common.hxx> #include <cstdlib> #include <memory> @@ -449,8 +450,13 @@ void PSWriter::ImplWriteProlog( const Graphic* pPreview ) ImplWriteLong( aSizePoint.Width() ); ImplWriteLong( aSizePoint.Height() ,PS_RET ); ImplWriteLine( "%%Pages: 0" ); - OUString aCreator( "%%Creator: " + utl::ConfigManager::getProductName() + " " + - utl::ConfigManager::getProductVersion() ); + OUString aCreator; + OUString aCreatorOverride = officecfg::Office::Common::Save::Document::GeneratorOverride::get(); + if( !aCreatorOverride.isEmpty()) + aCreator = aCreatorOverride; + else + aCreator = "%%Creator: " + utl::ConfigManager::getProductName() + " " + + utl::ConfigManager::getProductVersion(); ImplWriteLine( OUStringToOString( aCreator, RTL_TEXTENCODING_UTF8 ).getStr() ); ImplWriteLine( "%%Title: none" ); ImplWriteLine( "%%CreationDate: none" );