summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>2022-07-28 14:01:45 +0200
committerThorsten Behrens <thorsten.behrens@allotropia.de>2022-08-01 04:23:02 +0200
commit74918534ee4243d2849f74c4eaf91eb610999413 (patch)
tree3ebeb708b10fa8702ac8d597a92efd2f87079db8
parent12b3cd8737e1d4ab76eb0eedee8790eb44b1e278 (diff)
Add 'JobName' to PrintOptions
Allow users to specify a job name which is sent to the printer (by default this is the current document name). Usage: Sub PrintWithCustomJobname Dim mPOpts(1) As New com.sun.star.beans.PropertyValue mPOpts(0).Name = "JobName" mPOpts(0).Value = "My Job Name" ThisComponent.Print(mPOpts()) End Sub Change-Id: Id7c1c0da7f581b1c050bb3e6d61dd01b7e8205f0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137562 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
-rw-r--r--offapi/com/sun/star/view/PrintOptions.idl8
-rw-r--r--sfx2/source/doc/printhelper.cxx9
-rw-r--r--sfx2/source/view/viewprn.cxx12
3 files changed, 25 insertions, 4 deletions
diff --git a/offapi/com/sun/star/view/PrintOptions.idl b/offapi/com/sun/star/view/PrintOptions.idl
index 9ea4d7c15bf0..3941b6e5dd62 100644
--- a/offapi/com/sun/star/view/PrintOptions.idl
+++ b/offapi/com/sun/star/view/PrintOptions.idl
@@ -78,6 +78,14 @@ published service PrintOptions
/** advises the printer to create a single print job for each copy.
*/
[optional, property] boolean SinglePrintJobs;
+
+ /** The job name which is sent to the printer (can be seen in the Printer job queue).
+ *
+ * If omitted, the document title will be used as default.
+ *
+ * @since LibreOffice 7.5
+ */
+ [optional, property] boolean JobName;
};
diff --git a/sfx2/source/doc/printhelper.cxx b/sfx2/source/doc/printhelper.cxx
index 64f17e15bd37..1557cc567b2f 100644
--- a/sfx2/source/doc/printhelper.cxx
+++ b/sfx2/source/doc/printhelper.cxx
@@ -694,6 +694,15 @@ void SAL_CALL SfxPrintHelper::print(const uno::Sequence< beans::PropertyValue >&
pCheckedArgs[nProps++].Value <<= bTemp;
}
+ else if ( rProp.Name == "JobName" )
+ {
+ OUString sTemp;
+ if( !(rProp.Value >>= sTemp) )
+ throw css::lang::IllegalArgumentException();
+ pCheckedArgs[nProps].Name = rProp.Name;
+ pCheckedArgs[nProps++].Value <<= sTemp;
+ }
+
// Pages-Property
else if ( rProp.Name == "Pages" )
{
diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx
index bdc85c81a8ee..9476dd22edec 100644
--- a/sfx2/source/view/viewprn.cxx
+++ b/sfx2/source/view/viewprn.cxx
@@ -604,10 +604,14 @@ void SfxViewShell::StartPrint( const uno::Sequence < beans::PropertyValue >& rPr
));
pImpl->m_xPrinterController = xNewController;
- SfxObjectShell *pObjShell = GetObjectShell();
- xNewController->setValue( "JobName",
- Any( pObjShell->GetTitle(1) ) );
- xNewController->setPrinterModified( mbPrinterSettingsModified );
+ // When no JobName was specified via com::sun::star::view::PrintOptions::JobName ,
+ // use the document title as default job name
+ css::beans::PropertyValue* pJobNameVal = xNewController->getValue("JobName");
+ if (!pJobNameVal)
+ {
+ xNewController->setValue("JobName", Any(GetObjectShell()->GetTitle(1)));
+ xNewController->setPrinterModified(mbPrinterSettingsModified);
+ }
}
void SfxViewShell::ExecPrint( const uno::Sequence < beans::PropertyValue >& rProps, bool bIsAPI, bool bIsDirect )