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 INCLUDED_FILTER_SOURCE_PDF_PDFEXPORT_HXX
#define INCLUDED_FILTER_SOURCE_PDF_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< uno::XComponentContext > mxContext;
Reference< task::XStatusIndicator > mxStatusIndicator;
Reference< task::XInteractionHandler > mxIH;
bool mbUseTaggedPDF;
sal_Int32 mnPDFTypeSelection;
bool mbExportNotes;
bool mbExportPlaceholders;
bool mbViewPDF;
bool mbExportNotesPages;
bool mbUseTransitionEffects;
bool mbExportBookmarks;
bool mbExportHiddenSlides;
sal_Int32 mnOpenBookmarkLevels;
bool mbUseLosslessCompression;
bool mbReduceImageResolution;
bool mbSkipEmptyPages;
bool mbAddStream;
sal_Int32 mnMaxImageResolution;
sal_Int32 mnQuality;
sal_Int32 mnFormsFormat;
bool mbExportFormFields;
bool mbAllowDuplicateFieldNames;
sal_Int32 mnProgressValue;
bool mbRemoveTransparencies;
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)
bool mbHideViewerToolbar;
bool mbHideViewerMenubar;
bool mbHideViewerWindowControls;
bool mbFitWindow;
bool mbCenterWindow;
bool mbOpenInFullScreenMode;
bool mbDisplayPDFDocumentTitle;
sal_Int32 mnPDFDocumentMode;
sal_Int32 mnPDFDocumentAction;
sal_Int32 mnZoom;
sal_Int32 mnInitialPage;
sal_Int32 mnPDFPageLayout;
bool mbFirstPageLeft;
bool mbEncrypt;
bool mbRestrictPermissions;
sal_Int32 mnPrintAllowed;
sal_Int32 mnChangesAllowed;
bool mbCanCopyOrExtract;
bool mbCanExtractForAccessibility;
SvtGraphicFill maCacheFill;
//--->i56629
bool mbExportRelativeFsysLinks;
sal_Int32 mnDefaultLinkAction;
bool mbConvertOOoTargetToPDFTarget;
bool mbExportBmkToDest;
bool ImplExportPage( vcl::PDFWriter& rWriter, vcl::PDFExtOutDevData& rPDFExtOutDevData,
const GDIMetaFile& rMtf );
bool mbSignPDF;
OUString msSignLocation;
OUString msSignContact;
OUString msSignReason;
OUString msSignPassword;
Reference< security::XCertificate > maSignCertificate;
OUString msSignTSA;
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< uno::XComponentContext >& xFact );
~PDFExport();
bool ExportSelection( vcl::PDFWriter& rPDFWriter,
Reference< css::view::XRenderable >& rRenderable,
const Any& rSelection,
const StringRangeEnumerator& rRangeEnum,
Sequence< PropertyValue >& rRenderOptions,
sal_Int32 nPageCount );
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: */
|