1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#ifndef PDFEXPORT_HXX
#define PDFEXPORT_HXX
#include "pdffilter.hxx"
#include <tools/multisel.hxx>
#include <vcl/pdfwriter.hxx>
#include <vcl/pdfextoutdevdata.hxx>
#include <com/sun/star/view/XRenderable.hpp>
class GDIMetaFile;
class Size;
namespace vcl { class PDFWriter; }
// -------------
// - PDFExport -
// -------------
class PDFExport
{
private:
Reference< XComponent > mxSrcDoc;
Reference< lang::XMultiServiceFactory > mxMSF;
Reference< task::XStatusIndicator > mxStatusIndicator;
Reference< task::XInteractionHandler > mxIH;
sal_Bool mbUseTaggedPDF;
sal_Int32 mnPDFTypeSelection;
sal_Bool mbExportNotes;
sal_Bool mbViewPDF;
sal_Bool mbExportNotesPages;
sal_Bool mbEmbedStandardFonts;
sal_Bool mbUseTransitionEffects;
sal_Bool mbExportBookmarks;
sal_Bool mbExportHiddenSlides;
sal_Int32 mnOpenBookmarkLevels;
sal_Bool mbUseLosslessCompression;
sal_Bool mbReduceImageResolution;
sal_Bool mbSkipEmptyPages;
sal_Bool mbAddStream;
sal_Int32 mnMaxImageResolution;
sal_Int32 mnQuality;
sal_Int32 mnFormsFormat;
sal_Bool mbExportFormFields;
sal_Bool mbAllowDuplicateFieldNames;
sal_Int32 mnProgressValue;
sal_Bool mbRemoveTransparencies;
sal_Bool mbWatermark;
uno::Any maWatermark;
//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)
sal_Bool mbHideViewerToolbar;
sal_Bool mbHideViewerMenubar;
sal_Bool mbHideViewerWindowControls;
sal_Bool mbFitWindow;
sal_Bool mbCenterWindow;
sal_Bool mbOpenInFullScreenMode;
sal_Bool mbDisplayPDFDocumentTitle;
sal_Int32 mnPDFDocumentMode;
sal_Int32 mnPDFDocumentAction;
sal_Int32 mnZoom;
sal_Int32 mnInitialPage;
sal_Int32 mnPDFPageLayout;
sal_Bool mbFirstPageLeft;
sal_Bool mbEncrypt;
sal_Bool mbRestrictPermissions;
sal_Int32 mnPrintAllowed;
sal_Int32 mnChangesAllowed;
sal_Bool mbCanCopyOrExtract;
sal_Bool mbCanExtractForAccessibility;
SvtGraphicFill maCacheFill;
//--->i56629
sal_Bool mbExportRelativeFsysLinks;
sal_Int32 mnDefaultLinkAction;
sal_Bool mbConvertOOoTargetToPDFTarget;
sal_Bool mbExportBmkToDest;
sal_Bool ImplExportPage( ::vcl::PDFWriter& rWriter, ::vcl::PDFExtOutDevData& rPDFExtOutDevData,
const GDIMetaFile& rMtf );
sal_Bool mbSignPDF;
OUString msSignLocation;
OUString msSignContact;
OUString msSignReason;
OUString msSignPassword;
Reference< security::XCertificate > maSignCertificate;
void ImplWriteWatermark( ::vcl::PDFWriter& rWriter, const Size& rPageSize );
public:
PDFExport( const Reference< XComponent >& rxSrcDoc,
const Reference< task::XStatusIndicator >& xStatusIndicator,
const Reference< task::XInteractionHandler >& xIH,
const Reference< lang::XMultiServiceFactory >& xFact );
~PDFExport();
sal_Bool ExportSelection( vcl::PDFWriter& rPDFWriter,
Reference< com::sun::star::view::XRenderable >& rRenderable,
const Any& rSelection,
const StringRangeEnumerator& rRangeEnum,
Sequence< PropertyValue >& rRenderOptions,
sal_Int32 nPageCount );
sal_Bool Export( const OUString& rFile, const Sequence< PropertyValue >& rFilterData );
void showErrors( const std::set<vcl::PDFWriter::ErrorCode>& );
};
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|