diff options
author | Julien Nabet <serval2412@yahoo.fr> | 2015-12-28 17:32:19 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2016-01-12 16:17:49 +0000 |
commit | feebc5953fb416c5dc8cdf8c7e924a9ff9c70f17 (patch) | |
tree | f450337f73f3f32dd869fe0ca646913ecbf60dff | |
parent | 7787395c25d182e4c802881ec852b8d3ad3dd46a (diff) |
tdf#65439: Export to PDF/A-1a gives transparency warning
There was a use of transparency because Watermark was always defined
Now we test if text of Watermark is empty or not
Remark: it seems we don't cope not-text Watermark in pdf export
(additional cleaning+renaming)
Change-Id: I9d9c759a80c0a61e4f0a94c0fa295f2950caa3bc
Reviewed-on: https://gerrit.libreoffice.org/20990
Tested-by: Jenkins <ci@libreoffice.org>
Tested-by: Jan-Marek Glogowski <glogow@fbihome.de>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
(cherry picked from commit 5c5017ea37e1bee205c6c1b9cafe753fcaf1a9a4)
Reviewed-on: https://gerrit.libreoffice.org/21397
Tested-by: Michael Stahl <mstahl@redhat.com>
-rw-r--r-- | filter/source/pdf/pdfexport.cxx | 18 | ||||
-rw-r--r-- | filter/source/pdf/pdfexport.hxx | 3 |
2 files changed, 5 insertions, 16 deletions
diff --git a/filter/source/pdf/pdfexport.cxx b/filter/source/pdf/pdfexport.cxx index 3ad411e98bce..5a6704165d2a 100644 --- a/filter/source/pdf/pdfexport.cxx +++ b/filter/source/pdf/pdfexport.cxx @@ -115,7 +115,6 @@ PDFExport::PDFExport( const Reference< XComponent >& rxSrcDoc, mbAllowDuplicateFieldNames ( false ), mnProgressValue ( 0 ), mbRemoveTransparencies ( false ), - mbWatermark ( false ), mbHideViewerToolbar ( false ), mbHideViewerMenubar ( false ), @@ -503,10 +502,7 @@ bool PDFExport::Export( const OUString& rFile, const Sequence< PropertyValue >& else if ( rFilterData[ nData ].Name == "IsAddStream" ) rFilterData[ nData ].Value >>= mbAddStream; else if ( rFilterData[ nData ].Name == "Watermark" ) - { - maWatermark = rFilterData[ nData ].Value; - mbWatermark = true; - } + rFilterData[ nData ].Value >>= msWatermark; //now all the security related properties... else if ( rFilterData[ nData ].Name == "EncryptFile" ) rFilterData[ nData ].Value >>= mbEncrypt; @@ -1051,7 +1047,7 @@ bool PDFExport::ImplExportPage( vcl::PDFWriter& rWriter, vcl::PDFExtOutDevData& rPDFExtOutDevData.ResetSyncData(); - if( mbWatermark ) + if (!msWatermark.isEmpty()) ImplWriteWatermark( rWriter, aSizePDF ); return bRet; @@ -1061,7 +1057,6 @@ bool PDFExport::ImplExportPage( vcl::PDFWriter& rWriter, vcl::PDFExtOutDevData& void PDFExport::ImplWriteWatermark( vcl::PDFWriter& rWriter, const Size& rPageSize ) { - OUString aText( "Watermark" ); vcl::Font aFont( OUString( "Helvetica" ), Size( 0, 3*rPageSize.Height()/4 ) ); aFont.SetItalic( ITALIC_NONE ); aFont.SetWidthType( WIDTH_NORMAL ); @@ -1074,18 +1069,13 @@ void PDFExport::ImplWriteWatermark( vcl::PDFWriter& rWriter, const Size& rPageSi aFont.SetOrientation( 2700 ); } - if( ! ( maWatermark >>= aText ) ) - { - // more complicated watermark ? - } - // adjust font height for text to fit OutputDevice* pDev = rWriter.GetReferenceDevice(); pDev->Push(); pDev->SetFont( aFont ); pDev->SetMapMode( MapMode( MAP_POINT ) ); int w = 0; - while( ( w = pDev->GetTextWidth( aText ) ) > nTextWidth ) + while( ( w = pDev->GetTextWidth( msWatermark ) ) > nTextWidth ) { if (w == 0) break; @@ -1127,7 +1117,7 @@ void PDFExport::ImplWriteWatermark( vcl::PDFWriter& rWriter, const Size& rPageSi } rWriter.SetClipRegion(); rWriter.BeginTransparencyGroup(); - rWriter.DrawText( aTextPoint, aText ); + rWriter.DrawText( aTextPoint, msWatermark ); rWriter.EndTransparencyGroup( aTextRect, 50 ); rWriter.Pop(); } diff --git a/filter/source/pdf/pdfexport.hxx b/filter/source/pdf/pdfexport.hxx index b37cf15bb661..75ac0aa4e776 100644 --- a/filter/source/pdf/pdfexport.hxx +++ b/filter/source/pdf/pdfexport.hxx @@ -66,8 +66,7 @@ private: sal_Int32 mnProgressValue; bool mbRemoveTransparencies; - bool mbWatermark; - uno::Any maWatermark; + OUString msWatermark; //these variable are here only to have a location in filter/pdf to set the default //to be used by the macro (when the FilterData are set by the macro itself) |