summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Nabet <serval2412@yahoo.fr>2015-12-28 17:32:19 +0100
committerMichael Stahl <mstahl@redhat.com>2016-01-14 13:27:49 +0000
commite0a22b55c979edf703d42ea40a4b8b607e4ad24d (patch)
tree265e11d0bd7f6b2987e17509dff927a3fe964975
parentcb72051d70a844077363d52a1a54d083136cde03 (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
-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 7c065a4d6d51..daf468929758 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;
@@ -1032,7 +1028,7 @@ bool PDFExport::ImplExportPage( vcl::PDFWriter& rWriter, vcl::PDFExtOutDevData&
rPDFExtOutDevData.ResetSyncData();
- if( mbWatermark )
+ if (!msWatermark.isEmpty())
ImplWriteWatermark( rWriter, aSizePDF );
return bRet;
@@ -1042,7 +1038,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 );
@@ -1055,18 +1050,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;
@@ -1108,7 +1098,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)