summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Nabet <serval2412@yahoo.fr>2015-12-28 17:32:19 +0100
committerAndras Timar <andras.timar@collabora.com>2016-01-18 22:53:32 +0100
commit9aba3a39aaf1ef71243d14996e87cd7197ece17e (patch)
tree12fdf0e03f9cb87d3c5da7787ce55b9e12ea7323
parent84be67363a7f9765bbe6005097c73a5a2e1a532c (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/21398 (cherry picked from commit e0a22b55c979edf703d42ea40a4b8b607e4ad24d)
-rw-r--r--filter/source/pdf/pdfexport.cxx18
-rw-r--r--filter/source/pdf/pdfexport.hxx3
2 files changed, 5 insertions, 16 deletions
diff --git a/filter/source/pdf/pdfexport.cxx b/filter/source/pdf/pdfexport.cxx
index 045b0bde9d26..19b0342bdef3 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( PushFlags::ALL );
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 1015322e51e9..499beb1f1e45 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)