summaryrefslogtreecommitdiff
path: root/filter/source/pdf
diff options
context:
space:
mode:
Diffstat (limited to 'filter/source/pdf')
-rw-r--r--filter/source/pdf/impdialog.cxx10
-rw-r--r--filter/source/pdf/impdialog.hrc7
-rw-r--r--filter/source/pdf/impdialog.hxx2
-rw-r--r--filter/source/pdf/impdialog.src15
-rw-r--r--filter/source/pdf/pdfdialog.cxx2
-rw-r--r--filter/source/pdf/pdfexport.cxx178
-rw-r--r--filter/source/pdf/pdfexport.hxx1
-rw-r--r--filter/source/pdf/pdffilter.cxx2
8 files changed, 142 insertions, 75 deletions
diff --git a/filter/source/pdf/impdialog.cxx b/filter/source/pdf/impdialog.cxx
index 46b9835eb648..4037ba0560a8 100644
--- a/filter/source/pdf/impdialog.cxx
+++ b/filter/source/pdf/impdialog.cxx
@@ -79,6 +79,7 @@ ImpPDFTabDialog::ImpPDFTabDialog( Window* pParent,
mbIsSkipEmptyPages( sal_True ),
mnFormsType( 0 ),
mbExportFormFields( sal_True ),
+ mbAllowDuplicateFieldNames( sal_False ),
mbExportBookmarks( sal_True ),
mnOpenBookmarkLevels( -1 ),
@@ -192,6 +193,7 @@ ImpPDFTabDialog::ImpPDFTabDialog( Window* pParent,
mbExportFormFields = maConfigItem.ReadBool( OUString( RTL_CONSTASCII_USTRINGPARAM( "ExportFormFields" ) ), sal_True );
if ( ( mnFormsType < 0 ) || ( mnFormsType > 3 ) )
mnFormsType = 0;
+ mbAllowDuplicateFieldNames = maConfigItem.ReadBool( OUString( RTL_CONSTASCII_USTRINGPARAM( "AllowDuplicateFieldNames" ) ), sal_False );
//prepare values for the Viewer tab page
mbHideViewerToolbar = maConfigItem.ReadBool( OUString( RTL_CONSTASCII_USTRINGPARAM( "HideViewerToolbar" ) ), sal_False );
@@ -323,6 +325,7 @@ Sequence< PropertyValue > ImpPDFTabDialog::GetFilterData()
*/
maConfigItem.WriteInt32( OUString( RTL_CONSTASCII_USTRINGPARAM( "FormsType" ) ), mnFormsType );
maConfigItem.WriteBool( OUString( RTL_CONSTASCII_USTRINGPARAM( "ExportFormFields" ) ), mbExportFormFields );
+ maConfigItem.WriteBool( OUString( RTL_CONSTASCII_USTRINGPARAM( "AllowDuplicateFieldNames" ) ), mbAllowDuplicateFieldNames );
if( GetTabPage( RID_PDF_TAB_VPREFER ) )
( ( ImpPDFTabViewerPage* )GetTabPage( RID_PDF_TAB_VPREFER ) )->GetFilterConfigItem( this );
@@ -432,6 +435,7 @@ ImpPDFTabGeneralPage::ImpPDFTabGeneralPage( Window* pParent,
mbExportFormFieldsUserSelection( sal_False ),
maFtFormsFormat( this, ResId( FT_FORMSFORMAT, *paResMgr ) ),
maLbFormsFormat( this, ResId( LB_FORMSFORMAT, *paResMgr ) ),
+ maCbAllowDuplicateFieldNames( this, ResId( CB_ALLOWDUPLICATEFIELDNAMES, *paResMgr ) ),
maCbExportBookmarks( this, ResId( CB_EXPORTBOOKMARKS, *paResMgr ) ),
maCbExportNotes( this, ResId( CB_EXPORTNOTES, *paResMgr ) ),
@@ -531,6 +535,8 @@ void ImpPDFTabGeneralPage::SetFilterConfigItem( const ImpPDFTabDialog* paParent
maLbFormsFormat.SelectEntryPos( (sal_uInt16)paParent->mnFormsType );
maLbFormsFormat.Enable( paParent->mbExportFormFields );
+ maCbAllowDuplicateFieldNames.Check( paParent->mbAllowDuplicateFieldNames );
+ maCbAllowDuplicateFieldNames.Enable( paParent->mbExportFormFields );
if ( mbIsPresentation )
maCbExportNotes.Check( paParent->mbExportNotesBoth );
@@ -605,6 +611,7 @@ void ImpPDFTabGeneralPage::GetFilterConfigItem( ImpPDFTabDialog* paParent )
* ever be an additional form submit format this could get invalid.
*/
paParent->mnFormsType = (sal_Int32) maLbFormsFormat.GetSelectEntryPos();
+ paParent->mbAllowDuplicateFieldNames = maCbAllowDuplicateFieldNames.IsChecked();
}
// -----------------------------------------------------------------------------
@@ -628,6 +635,7 @@ IMPL_LINK( ImpPDFTabGeneralPage, TogglePagesHdl, void*, EMPTYARG )
IMPL_LINK( ImpPDFTabGeneralPage, ToggleExportFormFieldsHdl, void*, EMPTYARG )
{
maLbFormsFormat.Enable( maCbExportFormFields.IsChecked() );
+ maCbAllowDuplicateFieldNames.Enable( maCbExportFormFields.IsChecked() );
return 0;
}
@@ -680,6 +688,7 @@ IMPL_LINK( ImpPDFTabGeneralPage, ToggleExportPDFAHdl, void*, EMPTYARG )
sal_Bool bPDFA1Sel = maCbPDFA1b.IsChecked();
maFtFormsFormat.Enable( !bPDFA1Sel );
maLbFormsFormat.Enable( !bPDFA1Sel );
+ maCbAllowDuplicateFieldNames.Enable( !bPDFA1Sel );
if(bPDFA1Sel)
{
//store the values of subordinate controls
@@ -1165,6 +1174,7 @@ void ImpPDFTabSecurityPage::ImplPwdPushButton( const String & i_rDlgTitle, Strin
aPwdDialog.SetMinLen( 0 );
aPwdDialog.ShowExtras( SHOWEXTRAS_CONFIRM );
aPwdDialog.SetText( i_rDlgTitle );
+ aPwdDialog.AllowAsciiOnly();
if( aPwdDialog.Execute() == RET_OK ) //OK issued get password and set it
io_rDestPassword = aPwdDialog.GetPassword();
enablePermissionControls();
diff --git a/filter/source/pdf/impdialog.hrc b/filter/source/pdf/impdialog.hrc
index 23089f1419e9..91ff6a662ae3 100644
--- a/filter/source/pdf/impdialog.hrc
+++ b/filter/source/pdf/impdialog.hrc
@@ -83,10 +83,11 @@
#define CB_EXPORTFORMFIELDS 20
#define FT_FORMSFORMAT 21
#define LB_FORMSFORMAT 22
-#define CB_EXPORTEMPTYPAGES 23
-#define CB_ADDSTREAM 24
+#define CB_ALLOWDUPLICATEFIELDNAMES 23
+#define CB_EXPORTEMPTYPAGES 24
+#define CB_ADDSTREAM 25
-#define CB_PDFA_1B_SELECT 25
+#define CB_PDFA_1B_SELECT 26
#define FL_OLD_PAGES 51
#define RB_OLD_ALL 52
diff --git a/filter/source/pdf/impdialog.hxx b/filter/source/pdf/impdialog.hxx
index 7ace316ac1eb..e1cb794cf4a3 100644
--- a/filter/source/pdf/impdialog.hxx
+++ b/filter/source/pdf/impdialog.hxx
@@ -103,6 +103,7 @@ protected:
sal_Bool mbAddStream;
sal_Int32 mnFormsType;
sal_Bool mbExportFormFields;
+ sal_Bool mbAllowDuplicateFieldNames;
sal_Bool mbExportBookmarks;
sal_Int32 mnOpenBookmarkLevels;
@@ -192,6 +193,7 @@ class ImpPDFTabGeneralPage : public SfxTabPage
sal_Bool mbExportFormFieldsUserSelection;
FixedText maFtFormsFormat;
ListBox maLbFormsFormat;
+ CheckBox maCbAllowDuplicateFieldNames;
CheckBox maCbExportBookmarks;
CheckBox maCbExportNotes;
diff --git a/filter/source/pdf/impdialog.src b/filter/source/pdf/impdialog.src
index 00abf5b5ebd4..f47a6219c313 100644
--- a/filter/source/pdf/impdialog.src
+++ b/filter/source/pdf/impdialog.src
@@ -196,23 +196,30 @@ TabPage RID_PDF_TAB_GENER
< "XML" ; > ;
};
};
+ CheckBox CB_ALLOWDUPLICATEFIELDNAMES
+ {
+ Pos = MAP_APPFONT( 30, 178 );
+ Size = MAP_APPFONT( 128, 10 );
+ TabStop = TRUE;
+ Text [ en-US ] = "Allow duplicate field ~names";
+ };
CheckBox CB_EXPORTBOOKMARKS
{
- Pos = MAP_APPFONT ( 12 , 180 ) ;
+ Pos = MAP_APPFONT ( 12 , 190 ) ;
Size = MAP_APPFONT ( 158 , 10 ) ;
TabStop = TRUE ;
Text[ en-US ] = "Export ~bookmarks";
};
CheckBox CB_EXPORTNOTES
{
- Pos = MAP_APPFONT ( 12 , 193 ) ;
+ Pos = MAP_APPFONT ( 12 , 203 ) ;
Size = MAP_APPFONT ( 158 , 10 ) ;
TabStop = TRUE ;
Text[ en-US ] = "~Export comments";
};
CheckBox CB_EXPORTEMPTYPAGES
{
- Pos = MAP_APPFONT ( 12 , 206 ) ;
+ Pos = MAP_APPFONT ( 12 , 216 ) ;
Size = MAP_APPFONT ( 158 , 16 ) ;
TabStop = TRUE ;
WordBreak = TRUE ;
@@ -220,7 +227,7 @@ TabPage RID_PDF_TAB_GENER
};
CheckBox CB_ADDSTREAM
{
- Pos = MAP_APPFONT ( 12 , 224 ) ;
+ Pos = MAP_APPFONT ( 12 , 235 ) ;
Size = MAP_APPFONT ( 158 , 10 ) ;
TabStop = TRUE ;
Text[ en-US ] = "Create ~hybrid file";
diff --git a/filter/source/pdf/pdfdialog.cxx b/filter/source/pdf/pdfdialog.cxx
index 78ee2f82dbc5..765741630ea9 100644
--- a/filter/source/pdf/pdfdialog.cxx
+++ b/filter/source/pdf/pdfdialog.cxx
@@ -35,7 +35,7 @@
#include "impdialog.hxx"
#include <vcl/svapp.hxx>
#include <vcl/dialog.hxx>
-#include <svtools/solar.hrc>
+#include <svl/solar.hrc>
#include <com/sun/star/view/XRenderable.hpp>
using namespace ::rtl;
diff --git a/filter/source/pdf/pdfexport.cxx b/filter/source/pdf/pdfexport.cxx
index deb7429e743a..ab746ff725e8 100644
--- a/filter/source/pdf/pdfexport.cxx
+++ b/filter/source/pdf/pdfexport.cxx
@@ -51,10 +51,10 @@
#include <unotools/processfactory.hxx>
#include <svtools/FilterConfigItem.hxx>
#include <svtools/filter.hxx>
-#include <svtools/solar.hrc>
+#include <svl/solar.hrc>
#include <comphelper/string.hxx>
-#include <svtools/saveopt.hxx> // only for testing of relative saving options in PDF
+#include <unotools/saveopt.hxx> // only for testing of relative saving options in PDF
#include <vcl/graphictools.hxx>
#include <com/sun/star/beans/XPropertySet.hpp>
@@ -131,6 +131,7 @@ PDFExport::PDFExport( const Reference< XComponent >& rxSrcDoc, Reference< task::
mnQuality ( 90 ),
mnFormsFormat ( 0 ),
mbExportFormFields ( sal_True ),
+ mbAllowDuplicateFieldNames ( sal_False ),
mnProgressValue ( 0 ),
mbRemoveTransparencies ( sal_False ),
mbWatermark ( sal_False ),
@@ -462,6 +463,8 @@ sal_Bool PDFExport::Export( const OUString& rFile, const Sequence< PropertyValue
rFilterData[ nData ].Value >>= mbExportFormFields;
else if ( rFilterData[ nData ].Name == OUString( RTL_CONSTASCII_USTRINGPARAM( "FormsType" ) ) )
rFilterData[ nData ].Value >>= mnFormsFormat;
+ else if ( rFilterData[ nData ].Name == OUString( RTL_CONSTASCII_USTRINGPARAM( "AllowDuplicateFieldNames" ) ) )
+ rFilterData[ nData ].Value >>= mbAllowDuplicateFieldNames;
//viewer properties
else if ( rFilterData[ nData ].Name == OUString( RTL_CONSTASCII_USTRINGPARAM( "HideViewerToolbar" ) ) )
rFilterData[ nData ].Value >>= mbHideViewerToolbar;
@@ -707,6 +710,7 @@ sal_Bool PDFExport::Export( const OUString& rFile, const Sequence< PropertyValue
aContext.SubmitFormat = PDFWriter::FDF;
break;
}
+ aContext.AllowDuplicateFieldNames = mbAllowDuplicateFieldNames;
//get model
Reference< frame::XModel > xModel( mxSrcDoc, UNO_QUERY );
@@ -1209,71 +1213,83 @@ sal_Bool PDFExport::ImplWriteActions( PDFWriter& rWriter, PDFExtOutDevData* pPDF
const Size& rSize= pA->GetSize();
const Gradient& rTransparenceGradient = pA->GetGradient();
- const Size aDstSizeTwip( rDummyVDev.PixelToLogic( rDummyVDev.LogicToPixel( rSize ), MAP_TWIP ) );
- sal_Int32 nMaxBmpDPI = mbUseLosslessCompression ? 300 : 72;
- if ( mbReduceImageResolution )
+ // special case constant alpha value
+ if( rTransparenceGradient.GetStartColor() == rTransparenceGradient.GetEndColor() )
{
- if ( nMaxBmpDPI > mnMaxImageResolution )
- nMaxBmpDPI = mnMaxImageResolution;
+ const Color aTransCol( rTransparenceGradient.GetStartColor() );
+ const USHORT nTransPercent = aTransCol.GetLuminance() * 100 / 255;
+ rWriter.BeginTransparencyGroup();
+ ImplWriteActions( rWriter, NULL, aTmpMtf, rDummyVDev );
+ rWriter.EndTransparencyGroup( Rectangle( rPos, rSize ), nTransPercent );
}
- const sal_Int32 nPixelX = (sal_Int32)((double)aDstSizeTwip.Width() * (double)nMaxBmpDPI / 1440.0);
- const sal_Int32 nPixelY = (sal_Int32)((double)aDstSizeTwip.Height() * (double)nMaxBmpDPI / 1440.0);
- if ( nPixelX && nPixelY )
+ else
{
- Size aDstSizePixel( nPixelX, nPixelY );
- VirtualDevice* pVDev = new VirtualDevice;
- if( pVDev->SetOutputSizePixel( aDstSizePixel ) )
+ const Size aDstSizeTwip( rDummyVDev.PixelToLogic( rDummyVDev.LogicToPixel( rSize ), MAP_TWIP ) );
+ sal_Int32 nMaxBmpDPI = mbUseLosslessCompression ? 300 : 72;
+ if ( mbReduceImageResolution )
{
- Bitmap aPaint, aMask;
- AlphaMask aAlpha;
- Point aPoint;
-
- MapMode aMapMode( rDummyVDev.GetMapMode() );
- aMapMode.SetOrigin( aPoint );
- pVDev->SetMapMode( aMapMode );
- Size aDstSize( pVDev->PixelToLogic( aDstSizePixel ) );
-
- Point aMtfOrigin( aTmpMtf.GetPrefMapMode().GetOrigin() );
- if ( aMtfOrigin.X() || aMtfOrigin.Y() )
- aTmpMtf.Move( -aMtfOrigin.X(), -aMtfOrigin.Y() );
- double fScaleX = (double)aDstSize.Width() / (double)aTmpMtf.GetPrefSize().Width();
- double fScaleY = (double)aDstSize.Height() / (double)aTmpMtf.GetPrefSize().Height();
- if( fScaleX != 1.0 || fScaleY != 1.0 )
- aTmpMtf.Scale( fScaleX, fScaleY );
- aTmpMtf.SetPrefMapMode( aMapMode );
-
- // create paint bitmap
- aTmpMtf.WindStart();
- aTmpMtf.Play( pVDev, aPoint, aDstSize );
- aTmpMtf.WindStart();
-
- pVDev->EnableMapMode( FALSE );
- aPaint = pVDev->GetBitmap( aPoint, aDstSizePixel );
- pVDev->EnableMapMode( TRUE );
-
- // create mask bitmap
- pVDev->SetLineColor( COL_BLACK );
- pVDev->SetFillColor( COL_BLACK );
- pVDev->DrawRect( Rectangle( aPoint, aDstSize ) );
- pVDev->SetDrawMode( DRAWMODE_WHITELINE | DRAWMODE_WHITEFILL | DRAWMODE_WHITETEXT |
- DRAWMODE_WHITEBITMAP | DRAWMODE_WHITEGRADIENT );
- aTmpMtf.WindStart();
- aTmpMtf.Play( pVDev, aPoint, aDstSize );
- aTmpMtf.WindStart();
- pVDev->EnableMapMode( FALSE );
- aMask = pVDev->GetBitmap( aPoint, aDstSizePixel );
- pVDev->EnableMapMode( TRUE );
-
- // create alpha mask from gradient
- pVDev->SetDrawMode( DRAWMODE_GRAYGRADIENT );
- pVDev->DrawGradient( Rectangle( aPoint, aDstSize ), rTransparenceGradient );
- pVDev->SetDrawMode( DRAWMODE_DEFAULT );
- pVDev->EnableMapMode( FALSE );
- pVDev->DrawMask( aPoint, aDstSizePixel, aMask, Color( COL_WHITE ) );
- aAlpha = pVDev->GetBitmap( aPoint, aDstSizePixel );
- ImplWriteBitmapEx( rWriter, rDummyVDev, rPos, rSize, BitmapEx( aPaint, aAlpha ) );
+ if ( nMaxBmpDPI > mnMaxImageResolution )
+ nMaxBmpDPI = mnMaxImageResolution;
+ }
+ const sal_Int32 nPixelX = (sal_Int32)((double)aDstSizeTwip.Width() * (double)nMaxBmpDPI / 1440.0);
+ const sal_Int32 nPixelY = (sal_Int32)((double)aDstSizeTwip.Height() * (double)nMaxBmpDPI / 1440.0);
+ if ( nPixelX && nPixelY )
+ {
+ Size aDstSizePixel( nPixelX, nPixelY );
+ VirtualDevice* pVDev = new VirtualDevice;
+ if( pVDev->SetOutputSizePixel( aDstSizePixel ) )
+ {
+ Bitmap aPaint, aMask;
+ AlphaMask aAlpha;
+ Point aPoint;
+
+ MapMode aMapMode( rDummyVDev.GetMapMode() );
+ aMapMode.SetOrigin( aPoint );
+ pVDev->SetMapMode( aMapMode );
+ Size aDstSize( pVDev->PixelToLogic( aDstSizePixel ) );
+
+ Point aMtfOrigin( aTmpMtf.GetPrefMapMode().GetOrigin() );
+ if ( aMtfOrigin.X() || aMtfOrigin.Y() )
+ aTmpMtf.Move( -aMtfOrigin.X(), -aMtfOrigin.Y() );
+ double fScaleX = (double)aDstSize.Width() / (double)aTmpMtf.GetPrefSize().Width();
+ double fScaleY = (double)aDstSize.Height() / (double)aTmpMtf.GetPrefSize().Height();
+ if( fScaleX != 1.0 || fScaleY != 1.0 )
+ aTmpMtf.Scale( fScaleX, fScaleY );
+ aTmpMtf.SetPrefMapMode( aMapMode );
+
+ // create paint bitmap
+ aTmpMtf.WindStart();
+ aTmpMtf.Play( pVDev, aPoint, aDstSize );
+ aTmpMtf.WindStart();
+
+ pVDev->EnableMapMode( FALSE );
+ aPaint = pVDev->GetBitmap( aPoint, aDstSizePixel );
+ pVDev->EnableMapMode( TRUE );
+
+ // create mask bitmap
+ pVDev->SetLineColor( COL_BLACK );
+ pVDev->SetFillColor( COL_BLACK );
+ pVDev->DrawRect( Rectangle( aPoint, aDstSize ) );
+ pVDev->SetDrawMode( DRAWMODE_WHITELINE | DRAWMODE_WHITEFILL | DRAWMODE_WHITETEXT |
+ DRAWMODE_WHITEBITMAP | DRAWMODE_WHITEGRADIENT );
+ aTmpMtf.WindStart();
+ aTmpMtf.Play( pVDev, aPoint, aDstSize );
+ aTmpMtf.WindStart();
+ pVDev->EnableMapMode( FALSE );
+ aMask = pVDev->GetBitmap( aPoint, aDstSizePixel );
+ pVDev->EnableMapMode( TRUE );
+
+ // create alpha mask from gradient
+ pVDev->SetDrawMode( DRAWMODE_GRAYGRADIENT );
+ pVDev->DrawGradient( Rectangle( aPoint, aDstSize ), rTransparenceGradient );
+ pVDev->SetDrawMode( DRAWMODE_DEFAULT );
+ pVDev->EnableMapMode( FALSE );
+ pVDev->DrawMask( aPoint, aDstSizePixel, aMask, Color( COL_WHITE ) );
+ aAlpha = pVDev->GetBitmap( aPoint, aDstSizePixel );
+ ImplWriteBitmapEx( rWriter, rDummyVDev, rPos, rSize, BitmapEx( aPaint, aAlpha ) );
+ }
+ delete pVDev;
}
- delete pVDev;
}
}
break;
@@ -1349,7 +1365,6 @@ sal_Bool PDFExport::ImplWriteActions( PDFWriter& rWriter, PDFExtOutDevData* pPDF
PolyPolygon aEndArrow;
double fTransparency( aStroke.getTransparency() );
double fStrokeWidth( aStroke.getStrokeWidth() );
- SvtGraphicStroke::JoinType eJT( aStroke.getJoinType() );
SvtGraphicStroke::DashArray aDashArray;
aStroke.getStartArrow( aStartArrow );
@@ -1359,8 +1374,6 @@ sal_Bool PDFExport::ImplWriteActions( PDFWriter& rWriter, PDFExtOutDevData* pPDF
bSkipSequence = sal_True;
if ( aStartArrow.Count() || aEndArrow.Count() )
bSkipSequence = sal_False;
- if ( (sal_uInt32)eJT > 2 )
- bSkipSequence = sal_False;
if ( aDashArray.size() && ( fStrokeWidth != 0.0 ) && ( fTransparency == 0.0 ) )
bSkipSequence = sal_False;
if ( bSkipSequence )
@@ -1388,7 +1401,40 @@ sal_Bool PDFExport::ImplWriteActions( PDFWriter& rWriter, PDFExtOutDevData* pPDF
break;
}
aInfo.m_aDashArray = aDashArray;
- rWriter.DrawPolyLine( aPath, aInfo );
+
+ if(SvtGraphicStroke::joinNone == aStroke.getJoinType()
+ && fStrokeWidth > 0.0)
+ {
+ // emulate no edge rounding by handling single edges
+ const sal_uInt16 nPoints(aPath.GetSize());
+ const bool bCurve(aPath.HasFlags());
+
+ for(sal_uInt16 a(0); a + 1 < nPoints; a++)
+ {
+ if(bCurve
+ && POLY_NORMAL != aPath.GetFlags(a + 1)
+ && a + 2 < nPoints
+ && POLY_NORMAL != aPath.GetFlags(a + 2)
+ && a + 3 < nPoints)
+ {
+ const Polygon aSnippet(4,
+ aPath.GetConstPointAry() + a,
+ aPath.GetConstFlagAry() + a);
+ rWriter.DrawPolyLine( aSnippet, aInfo );
+ a += 2;
+ }
+ else
+ {
+ const Polygon aSnippet(2,
+ aPath.GetConstPointAry() + a);
+ rWriter.DrawPolyLine( aSnippet, aInfo );
+ }
+ }
+ }
+ else
+ {
+ rWriter.DrawPolyLine( aPath, aInfo );
+ }
}
}
else if ( pA->GetComment().Equals( "XPATHFILL_SEQ_BEGIN" ) )
diff --git a/filter/source/pdf/pdfexport.hxx b/filter/source/pdf/pdfexport.hxx
index 1d61a8fe8d86..cfe70a4ff0af 100644
--- a/filter/source/pdf/pdfexport.hxx
+++ b/filter/source/pdf/pdfexport.hxx
@@ -77,6 +77,7 @@ private:
sal_Int32 mnQuality;
sal_Int32 mnFormsFormat;
sal_Bool mbExportFormFields;
+ sal_Bool mbAllowDuplicateFieldNames;
sal_Int32 mnProgressValue;
sal_Bool mbRemoveTransparencies;
diff --git a/filter/source/pdf/pdffilter.cxx b/filter/source/pdf/pdffilter.cxx
index eea108d39187..631b90021ea5 100644
--- a/filter/source/pdf/pdffilter.cxx
+++ b/filter/source/pdf/pdffilter.cxx
@@ -35,7 +35,7 @@
#include "pdfexport.hxx"
#include <vcl/svapp.hxx>
#include <vcl/window.hxx>
-#include <svtools/outstrm.hxx>
+#include <svl/outstrm.hxx>
#include <svtools/FilterConfigItem.hxx>
// -------------