Poppler Qt5 25.07.90
poppler-qt5.h
1/* poppler-qt.h: qt interface to poppler
2 * Copyright (C) 2005, Net Integration Technologies, Inc.
3 * Copyright (C) 2005, 2007, Brad Hards <bradh@frogmouth.net>
4 * Copyright (C) 2005-2015, 2017-2022, Albert Astals Cid <aacid@kde.org>
5 * Copyright (C) 2005, Stefan Kebekus <stefan.kebekus@math.uni-koeln.de>
6 * Copyright (C) 2006-2011, Pino Toscano <pino@kde.org>
7 * Copyright (C) 2009 Shawn Rutledge <shawn.t.rutledge@gmail.com>
8 * Copyright (C) 2010 Suzuki Toshiya <mpsuzuki@hiroshima-u.ac.jp>
9 * Copyright (C) 2010 Matthias Fauconneau <matthias.fauconneau@gmail.com>
10 * Copyright (C) 2011 Andreas Hartmetz <ahartmetz@gmail.com>
11 * Copyright (C) 2011 Glad Deschrijver <glad.deschrijver@gmail.com>
12 * Copyright (C) 2012, Guillermo A. Amaral B. <gamaral@kde.org>
13 * Copyright (C) 2012, Fabio D'Urso <fabiodurso@hotmail.it>
14 * Copyright (C) 2012, Tobias Koenig <tobias.koenig@kdab.com>
15 * Copyright (C) 2012, 2014, 2015, 2018, 2019 Adam Reichold <adamreichold@myopera.com>
16 * Copyright (C) 2012, 2013 Thomas Freitag <Thomas.Freitag@alfa.de>
17 * Copyright (C) 2013 Anthony Granger <grangeranthony@gmail.com>
18 * Copyright (C) 2016 Jakub Alba <jakubalba@gmail.com>
19 * Copyright (C) 2017, 2020, 2021 Oliver Sander <oliver.sander@tu-dresden.de>
20 * Copyright (C) 2017, 2018 Klarälvdalens Datakonsult AB, a KDAB Group company, <info@kdab.com>. Work sponsored by the LiMux project of the city of Munich
21 * Copyright (C) 2018, 2021 Nelson Benítez León <nbenitezl@gmail.com>
22 * Copyright (C) 2019 Jan Grulich <jgrulich@redhat.com>
23 * Copyright (C) 2019 Alexander Volkov <a.volkov@rusbitech.ru>
24 * Copyright (C) 2020 Philipp Knechtges <philipp-dev@knechtges.com>
25 * Copyright (C) 2020 Katarina Behrens <Katarina.Behrens@cib.de>
26 * Copyright (C) 2020 Thorsten Behrens <Thorsten.Behrens@CIB.de>
27 * Copyright (C) 2020 Klarälvdalens Datakonsult AB, a KDAB Group company, <info@kdab.com>. Work sponsored by Technische Universität Dresden
28 * Copyright (C) 2021 Klarälvdalens Datakonsult AB, a KDAB Group company, <info@kdab.com>.
29 * Copyright (C) 2021 Mahmoud Khalil <mahmoudkhalil11@gmail.com>
30 * Copyright (C) 2021 Georgiy Sgibnev <georgiy@sgibnev.com>. Work sponsored by lab50.net.
31 * Copyright (C) 2022 Martin <martinbts@gmx.net>
32 * Copyright (C) 2023 Kevin Ottens <kevin.ottens@enioka.com>. Work sponsored by De Bortoli Wines
33 * Copyright (C) 2024 Pratham Gandhi <ppg.1382@gmail.com>
34 * Copyright (C) 2025, g10 Code GmbH, Author: Sune Stolborg Vuorela <sune@vuorela.dk>
35 *
36 * This program is free software; you can redistribute it and/or modify
37 * it under the terms of the GNU General Public License as published by
38 * the Free Software Foundation; either version 2, or (at your option)
39 * any later version.
40 *
41 * This program is distributed in the hope that it will be useful,
42 * but WITHOUT ANY WARRANTY; without even the implied warranty of
43 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
44 * GNU General Public License for more details.
45 *
46 * You should have received a copy of the GNU General Public License
47 * along with this program; if not, write to the Free Software
48 * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
49 */
50
51#ifndef __POPPLER_QT_H__
52#define __POPPLER_QT_H__
53
54#include <functional>
55
56#include "poppler-annotation.h"
57#include "poppler-link.h"
58#include "poppler-optcontent.h"
59#include "poppler-page-transition.h"
60
61#include <QtCore/QByteArray>
62#include <QtCore/QDateTime>
63#include <QtCore/QSet>
64#include <QtXml/QDomDocument>
65#include "poppler-export.h"
66
67class EmbFile;
68class Sound;
69class AnnotMovie;
70
74namespace Poppler {
75
76class Document;
77class DocumentData;
78
79class PageData;
80
81class FormField;
82class FormFieldSignature;
83
84class TextBoxData;
85
86class PDFConverter;
87class PSConverter;
88
89struct OutlineItemData;
90
100using PopplerDebugFunc = void (*)(const QString & /*message*/, const QVariant & /*closure*/);
101
113POPPLER_QT5_EXPORT void setDebugErrorFunction(PopplerDebugFunc debugFunction, const QVariant &closure);
114
121{
126};
127
134{
135 QVariant data;
136 ErrorStringType type;
137};
138
148class POPPLER_QT5_EXPORT TextBox
149{
150 friend class Page;
151
152public:
158 TextBox(const QString &text, const QRectF &bBox);
163
167 QString text() const;
168
175 QRectF boundingBox() const;
176
183
187 QRectF charBoundingBox(int i) const;
188
192 bool hasSpaceAfter() const;
193
194private:
195 Q_DISABLE_COPY(TextBox)
196
197 TextBoxData *m_data;
198};
199
200class FontInfoData;
205class POPPLER_QT5_EXPORT FontInfo
206{
207 friend class Document;
208
209public:
213 enum Type
214 {
215 unknown,
216 Type1,
217 Type1C,
218 Type1COT,
219 Type3,
220 TrueType,
221 TrueTypeOT,
222 CIDType0,
223 CIDType0C,
224 CIDType0COT,
225 CIDTrueType,
226 CIDTrueTypeOT
227 };
228
230
233 FontInfo();
234
238 explicit FontInfo(const FontInfoData &fid);
240
244 FontInfo(const FontInfo &fi);
245
250
254 QString name() const;
255
260 QString substituteName() const;
261
266 QString file() const;
267
273 bool isEmbedded() const;
274
281 bool isSubset() const;
282
290 Type type() const;
291
300 QString typeName() const;
301
306
307private:
308 FontInfoData *m_data;
309};
310
311class FontIteratorData;
331class POPPLER_QT5_EXPORT FontIterator
332{
333 friend class Document;
334 friend class DocumentData;
335
336public:
341
346 QList<FontInfo> next();
347
352 bool hasNext() const;
353
357 int currentPage() const;
358
359private:
360 Q_DISABLE_COPY(FontIterator)
361 FontIterator(int, DocumentData *dd);
362
363 FontIteratorData *d;
364};
365
366class EmbeddedFileData;
370class POPPLER_QT5_EXPORT EmbeddedFile
371{
372 friend class DocumentData;
373 friend class AnnotationPrivate;
374
375public:
377 explicit EmbeddedFile(EmbFile *embfile);
379
384
388 QString name() const;
389
395 QString description() const;
396
402 int size() const;
403
407 QDateTime modDate() const;
408
412 QDateTime createDate() const;
413
419 QByteArray checksum() const;
420
426 QString mimeType() const;
427
431 QByteArray data();
432
438 bool isValid() const;
439
443 // QDataStream dataStream() const;
444
445private:
446 Q_DISABLE_COPY(EmbeddedFile)
447 explicit EmbeddedFile(EmbeddedFileData &dd);
448
449 EmbeddedFileData *m_embeddedFile;
450};
451
460class POPPLER_QT5_EXPORT Page
461{
462 friend class Document;
463
464public:
469
474 {
475 Rotate0 = 0,
476 Rotate90 = 1,
477 Rotate180 = 2,
478 Rotate270 = 3
479 };
480
485 {
487 Closing
488 };
489
495 {
497 RawOrderLayout
498 };
499
505 {
506 NoPainterFlags = 0x00000000,
514 DontSaveAndRestore = 0x00000001
515 };
516 Q_DECLARE_FLAGS(PainterFlags, PainterFlag)
517
518
556 QImage renderToImage(double xres = 72.0, double yres = 72.0, int x = -1, int y = -1, int w = -1, int h = -1, Rotation rotate = Rotate0) const;
557
567 using RenderToImagePartialUpdateFunc = void (*)(const QImage & /*image*/, const QVariant & /*closure*/);
568
577 using ShouldRenderToImagePartialQueryFunc = bool (*)(const QVariant & /*closure*/);
578
628 QImage renderToImage(double xres, double yres, int x, int y, int w, int h, Rotation rotate, RenderToImagePartialUpdateFunc partialUpdateCallback, ShouldRenderToImagePartialQueryFunc shouldDoPartialUpdateCallback,
629 const QVariant &payload) const;
630
638 using ShouldAbortQueryFunc = bool (*)(const QVariant & /*closure*/);
639
693 QImage renderToImage(double xres, double yres, int x, int y, int w, int h, Rotation rotate, RenderToImagePartialUpdateFunc partialUpdateCallback, ShouldRenderToImagePartialQueryFunc shouldDoPartialUpdateCallback,
694 ShouldAbortQueryFunc shouldAbortRenderCallback, const QVariant &payload) const;
695
738 bool renderToPainter(QPainter *painter, double xres = 72.0, double yres = 72.0, int x = -1, int y = -1, int w = -1, int h = -1, Rotation rotate = Rotate0, PainterFlags flags = NoPainterFlags) const;
739
748 QImage thumbnail() const;
749
759 QString text(const QRectF &rect, TextLayout textLayout) const;
760
769 QString text(const QRectF &rect) const;
770
775 {
778 PreviousResult
779 };
780
785 {
787 CaseInsensitive
788 };
789
794 {
795 NoSearchFlags = 0x00000000,
796 IgnoreCase = 0x00000001,
797 WholeWords = 0x00000002,
798 IgnoreDiacritics = 0x00000004,
801 AcrossLines = 0x00000008
804 };
805 Q_DECLARE_FLAGS(SearchFlags, SearchFlag)
806
807
818 Q_DECL_DEPRECATED bool search(const QString &text, double &rectLeft, double &rectTop, double &rectRight, double &rectBottom, SearchDirection direction, SearchMode caseSensitive, Rotation rotate = Rotate0) const;
819
832 bool search(const QString &text, double &sLeft, double &sTop, double &sRight, double &sBottom, SearchDirection direction, SearchFlags flags = NoSearchFlags, Rotation rotate = Rotate0) const;
833
845 Q_DECL_DEPRECATED QList<QRectF> search(const QString &text, SearchMode caseSensitive, Rotation rotate = Rotate0) const;
846
861 QList<QRectF> search(const QString &text, SearchFlags flags = NoSearchFlags, Rotation rotate = Rotate0) const;
862
879 QList<TextBox *> textList(Rotation rotate = Rotate0) const;
880
905 QList<TextBox *> textList(Rotation rotate, ShouldAbortQueryFunc shouldAbortExtractionCallback, const QVariant &closure) const;
906
910 QSizeF pageSizeF() const;
911
915 QSize pageSize() const;
916
927 PageTransition *transition() const;
928
934 Link *action(PageAction act) const;
935
946
951
955 void defaultCTM(double *CTM, double dpiX, double dpiY, int rotate, bool upsideDown);
956
960 QList<Link *> links() const;
961
970 QList<Annotation *> annotations() const;
971
984 QList<Annotation *> annotations(const QSet<Annotation::SubType> &subtypes) const;
985
993 void addAnnotation(const Annotation *ann);
994
1002
1009 QList<FormField *> formFields() const;
1010
1018 double duration() const;
1019
1025 QString label() const;
1026
1032 int index() const;
1033
1034private:
1035 Q_DISABLE_COPY(Page)
1036
1037 Page(DocumentData *doc, int index);
1038 PageData *m_page;
1039};
1040
1048class POPPLER_QT5_EXPORT OutlineItem
1049{
1050 friend class Document;
1051
1052public:
1057 ~OutlineItem();
1058
1059 OutlineItem(const OutlineItem &other);
1060 OutlineItem &operator=(const OutlineItem &other);
1061
1062 OutlineItem(OutlineItem &&other) noexcept;
1063 OutlineItem &operator=(OutlineItem &&other) noexcept;
1064
1068 bool isNull() const;
1069
1073 QString name() const;
1074
1078 bool isOpen() const;
1079
1085 QSharedPointer<const LinkDestination> destination() const;
1086
1092 QString externalFileName() const;
1093
1099 QString uri() const;
1100
1106 bool hasChildren() const;
1107
1113 QVector<OutlineItem> children() const;
1114
1115private:
1116 explicit OutlineItem(OutlineItemData *data);
1117 OutlineItemData *m_data;
1118};
1119
1170class POPPLER_QT5_EXPORT Document
1171{
1172 friend class Page;
1173 friend class DocumentData;
1174
1175public:
1188
1202
1209 {
1212 QPainterBackend = ArthurBackend
1214
1221 {
1222 Antialiasing = 0x00000001,
1223 TextAntialiasing = 0x00000002,
1224 TextHinting = 0x00000004,
1225 TextSlightHinting = 0x00000008,
1226 OverprintPreview = 0x00000010,
1227 ThinLineSolid = 0x00000020,
1228 ThinLineShape = 0x00000040,
1229 IgnorePaperColor = 0x00000080,
1230 HideAnnotations = 0x00000100
1232 Q_DECLARE_FLAGS(RenderHints, RenderHint)
1233
1234
1240 {
1243 XfaForm
1245
1258 void setColorDisplayProfile(void *outputProfileA);
1268 void setColorDisplayProfileName(const QString &name);
1279 void *colorRgbProfile() const;
1290 void *colorDisplayProfile() const;
1291
1309 static Document *load(const QString &filePath, const QByteArray &ownerPassword = QByteArray(), const QByteArray &userPassword = QByteArray());
1310
1335 static Document *load(QIODevice *device, const QByteArray &ownerPassword = QByteArray(), const QByteArray &userPassword = QByteArray());
1336
1358 static Document *loadFromData(const QByteArray &fileContents, const QByteArray &ownerPassword = QByteArray(), const QByteArray &userPassword = QByteArray());
1359
1377 Page *page(int index) const;
1378
1391 Page *page(const QString &label) const;
1392
1396 int numPages() const;
1397
1404
1411
1418 Qt::LayoutDirection textDirection() const;
1419
1428 bool unlock(const QByteArray &ownerPassword, const QByteArray &userPassword);
1429
1433 bool isLocked() const;
1434
1450 QDateTime date(const QString &type) const;
1451
1457 bool setDate(const QString &key, const QDateTime &val);
1458
1462 QDateTime creationDate() const;
1463
1469 bool setCreationDate(const QDateTime &val);
1470
1474 QDateTime modificationDate() const;
1475
1481 bool setModificationDate(const QDateTime &val);
1482
1499 QString info(const QString &type) const;
1500
1506 bool setInfo(const QString &key, const QString &val);
1507
1511 QString title() const;
1512
1518 bool setTitle(const QString &val);
1519
1523 QString author() const;
1524
1530 bool setAuthor(const QString &val);
1531
1535 QString subject() const;
1536
1542 bool setSubject(const QString &val);
1543
1547 QString keywords() const;
1548
1554 bool setKeywords(const QString &val);
1555
1559 QString creator() const;
1560
1566 bool setCreator(const QString &val);
1567
1571 QString producer() const;
1572
1578 bool setProducer(const QString &val);
1579
1586
1590 QStringList infoKeys() const;
1591
1595 bool isEncrypted() const;
1596
1603 bool isLinearized() const;
1604
1609 bool okToPrint() const;
1610
1615 bool okToPrintHighRes() const;
1616
1624 bool okToChange() const;
1625
1630 bool okToCopy() const;
1631
1637 bool okToAddNotes() const;
1638
1646 bool okToFillForm() const;
1647
1654
1661
1669 bool okToAssemble() const;
1670
1685 Q_DECL_DEPRECATED void getPdfVersion(int *major, int *minor) const;
1686
1689 {
1690 int major;
1691 int minor;
1692 };
1693
1701
1713 QList<FontInfo> fonts() const;
1714
1730 FontIterator *newFontIterator(int startPage = 0) const;
1731
1737 QByteArray fontData(const FontInfo &fi) const;
1738
1745 QList<EmbeddedFile *> embeddedFiles() const;
1746
1750 bool hasEmbeddedFiles() const;
1751
1775 Q_DECL_DEPRECATED QDomDocument *toc() const;
1776
1784 QVector<OutlineItem> outline() const;
1785
1794 LinkDestination *linkDestination(const QString &name);
1795
1801 void setPaperColor(const QColor &color);
1807 QColor paperColor() const;
1808
1825
1831 static QSet<RenderBackend> availableRenderBackends();
1832
1842 void setRenderHint(RenderHint hint, bool on = true);
1848 RenderHints renderHints() const;
1849
1858
1867
1873 QString metadata() const;
1874
1888
1897
1904
1913 QStringList scripts() const;
1914
1931
1939
1952 bool getPdfId(QByteArray *permanentId, QByteArray *updateId) const;
1953
1960
1966 QVector<int> formCalculateOrder() const;
1967
1976 QVector<FormFieldSignature *> signatures() const;
1977
1984
1991 void setXRefReconstructedCallback(const std::function<void()> &callback);
1992
1997
1998private:
1999 Q_DISABLE_COPY(Document)
2000
2001 DocumentData *m_doc;
2002
2003 explicit Document(DocumentData *dataA);
2004};
2005
2006class BaseConverterPrivate;
2007class PSConverterPrivate;
2008class PDFConverterPrivate;
2016class POPPLER_QT5_EXPORT BaseConverter
2017{
2018 friend class Document;
2019
2020public:
2025
2027 void setOutputFileName(const QString &outputFileName);
2028
2034 void setOutputDevice(QIODevice *device);
2035
2041 virtual bool convert() = 0;
2042
2043 enum Error
2044 {
2045 NoError,
2046 FileLockedError,
2047 OpenOutputError,
2048 NotSupportedInputFileError
2049 };
2050
2055 Error lastError() const;
2056
2057protected:
2059 explicit BaseConverter(BaseConverterPrivate &dd);
2060 Q_DECLARE_PRIVATE(BaseConverter)
2061 BaseConverterPrivate *d_ptr;
2063
2064private:
2065 Q_DISABLE_COPY(BaseConverter)
2066};
2067
2084class POPPLER_QT5_EXPORT PSConverter : public BaseConverter
2085{
2086 friend class Document;
2087
2088public:
2095 {
2096 Printing = 0x00000001,
2097 StrictMargins = 0x00000002,
2098 ForceRasterization = 0x00000004,
2099 PrintToEPS = 0x00000008,
2100 HideAnnotations = 0x00000010,
2101 ForceOverprintPreview = 0x00000020
2103 Q_DECLARE_FLAGS(PSOptions, PSOption)
2104
2105
2108 ~PSConverter() override;
2109
2111 void setPageList(const QList<int> &pageList);
2112
2116 void setTitle(const QString &title);
2117
2121 void setHDPI(double hDPI);
2122
2126 void setVDPI(double vDPI);
2127
2131 void setRotate(int rotate);
2132
2136 void setPaperWidth(int paperWidth);
2137
2141 void setPaperHeight(int paperHeight);
2142
2146 void setRightMargin(int marginRight);
2147
2151 void setBottomMargin(int marginBottom);
2152
2156 void setLeftMargin(int marginLeft);
2157
2161 void setTopMargin(int marginTop);
2162
2170 void setStrictMargins(bool strictMargins);
2171
2180 void setForceOverprintPreview(bool forceOverprintPreview);
2181
2183 void setForceRasterize(bool forceRasterize);
2184
2190 void setPSOptions(PSOptions options);
2191
2199 PSOptions psOptions() const;
2200
2208 void setPageConvertedCallback(void (*callback)(int page, void *payload), void *payload);
2209
2210 bool convert() override;
2211
2212private:
2213 Q_DECLARE_PRIVATE(PSConverter)
2214 Q_DISABLE_COPY(PSConverter)
2215
2216 explicit PSConverter(DocumentData *document);
2217};
2218
2224class POPPLER_QT5_EXPORT PDFConverter : public BaseConverter
2225{
2226 friend class Document;
2227
2228public:
2233 {
2234 WithChanges = 0x00000001
2236 Q_DECLARE_FLAGS(PDFOptions, PDFOption)
2237
2238
2241 ~PDFConverter() override;
2242
2246 void setPDFOptions(PDFOptions options);
2250 PDFOptions pdfOptions() const;
2251
2264 class POPPLER_QT5_EXPORT NewSignatureData
2265 {
2266 public:
2269 NewSignatureData(const NewSignatureData &) = delete;
2270 NewSignatureData &operator=(const NewSignatureData &) = delete;
2271
2272 QString certNickname() const;
2273 void setCertNickname(const QString &certNickname);
2274
2275 QString password() const;
2276 void setPassword(const QString &password);
2277
2278 int page() const;
2279 void setPage(int page);
2280
2281 QRectF boundingRectangle() const;
2282 void setBoundingRectangle(const QRectF &rect);
2283
2284 QString signatureText() const;
2285 void setSignatureText(const QString &text);
2286
2294 QString signatureLeftText() const;
2295 void setSignatureLeftText(const QString &text);
2296
2304 QString reason() const;
2305 void setReason(const QString &reason);
2306
2314 QString location() const;
2315 void setLocation(const QString &location);
2316
2320 double fontSize() const;
2321 void setFontSize(double fontSize);
2322
2328 double leftFontSize() const;
2329 void setLeftFontSize(double fontSize);
2330
2334 QColor fontColor() const;
2335 void setFontColor(const QColor &color);
2336
2340 QColor borderColor() const;
2341 void setBorderColor(const QColor &color);
2342
2350 double borderWidth() const;
2351 void setBorderWidth(double width);
2352
2356 QColor backgroundColor() const;
2357 void setBackgroundColor(const QColor &color);
2358
2362 QString fieldPartialName() const;
2363 void setFieldPartialName(const QString &name);
2364
2372 QByteArray documentOwnerPassword() const;
2373 void setDocumentOwnerPassword(const QByteArray &password);
2374
2382 QByteArray documentUserPassword() const;
2383 void setDocumentUserPassword(const QByteArray &password);
2384
2393 QString imagePath() const;
2394 void setImagePath(const QString &path);
2395
2396 private:
2397 struct NewSignatureDataPrivate;
2398 NewSignatureDataPrivate *const d;
2399 };
2400
2410 bool sign(const NewSignatureData &data);
2411
2428
2434
2441
2442 bool convert() override;
2443
2444private:
2445 Q_DECLARE_PRIVATE(PDFConverter)
2446 Q_DISABLE_COPY(PDFConverter)
2447
2448 explicit PDFConverter(DocumentData *document);
2449};
2450
2454POPPLER_QT5_EXPORT Q_DECL_DEPRECATED QDateTime convertDate(char *dateString);
2455
2461POPPLER_QT5_EXPORT QDateTime convertDate(const char *dateString);
2462
2468POPPLER_QT5_EXPORT bool isCmsAvailable();
2469
2475POPPLER_QT5_EXPORT bool isOverprintPreviewAvailable();
2476
2477class SoundData;
2487class POPPLER_QT5_EXPORT SoundObject
2488{
2489public:
2494 {
2496 Embedded
2498
2509
2511 explicit SoundObject(Sound *popplersound);
2513
2514 ~SoundObject();
2515
2520
2524 QString url() const;
2525
2529 QByteArray data() const;
2530
2534 double samplingRate() const;
2535
2539 int channels() const;
2540
2544 int bitsPerSample() const;
2545
2550
2551private:
2552 Q_DISABLE_COPY(SoundObject)
2553
2554 SoundData *m_soundData;
2555};
2556
2557class MovieData;
2563class POPPLER_QT5_EXPORT MovieObject
2564{
2565 friend class AnnotationPrivate;
2566
2567public:
2572 {
2576 PlayPalindrome
2578
2579 ~MovieObject();
2580
2584 QString url() const;
2585
2589 QSize size() const;
2590
2594 int rotation() const;
2595
2599 bool showControls() const;
2600
2605
2610 bool showPosterImage() const;
2611
2618 QImage posterImage() const;
2619
2620private:
2622 explicit MovieObject(AnnotMovie *ann);
2624
2625 Q_DISABLE_COPY(MovieObject)
2626
2627 MovieData *m_movieData;
2628};
2629
2630}
2631
2632Q_DECLARE_OPERATORS_FOR_FLAGS(Poppler::Page::PainterFlags)
2633Q_DECLARE_OPERATORS_FOR_FLAGS(Poppler::Page::SearchFlags)
2634Q_DECLARE_OPERATORS_FOR_FLAGS(Poppler::Document::RenderHints)
2635Q_DECLARE_OPERATORS_FOR_FLAGS(Poppler::PDFConverter::PDFOptions)
2636Q_DECLARE_OPERATORS_FOR_FLAGS(Poppler::PSConverter::PSOptions)
2637
2638#endif
Annotation class holding properties shared by all annotations.
Definition poppler-annotation.h:203
Base converter.
Definition poppler-qt5.h:2017
virtual bool convert()=0
Does the conversion.
void setOutputDevice(QIODevice *device)
Sets the output device.
Error lastError() const
Returns the last error.
void setOutputFileName(const QString &outputFileName)
Sets the output file name.
virtual ~BaseConverter()
Destructor.
PDF document.
Definition poppler-qt5.h:1171
QString subject() const
The subject of the document.
RenderHints renderHints() const
The currently set render hints.
bool isLinearized() const
Test if the document is linearised.
bool setAuthor(const QString &val)
Set the author of the document to.
bool setTitle(const QString &val)
Set the title of the document to.
static Document * load(const QString &filePath, const QByteArray &ownerPassword=QByteArray(), const QByteArray &userPassword=QByteArray())
Load the document from a file on disk.
bool okToChange() const
Test if the permissions on the document allow it to be changed.
QString title() const
The title of the document.
bool okToCreateFormFields() const
Test if the permissions on the document allow interactive form fields (including signature fields) to...
PDFConverter * pdfConverter() const
Gets a new PDF converter for this document.
void getPdfVersion(int *major, int *minor) const
The version of the PDF specification that the document conforms to.
bool isLocked() const
Determine if the document is locked.
bool okToCopy() const
Test if the permissions on the document allow the contents to be copied / extracted.
QVector< OutlineItem > outline() const
Gets the outline of the document.
bool getPdfId(QByteArray *permanentId, QByteArray *updateId) const
The PDF identifiers.
int numPages() const
The number of pages in the document.
bool removeInfo()
Remove the document's Info dictionary.
PageLayout
The page layout.
Definition poppler-qt5.h:1193
@ TwoPageLeft
Display the pages two at a time, with odd-numbered pages on the left.
Definition poppler-qt5.h:1199
@ TwoColumnLeft
Display the pages in two columns, with odd-numbered pages on the left.
Definition poppler-qt5.h:1197
@ SinglePage
Display a single page.
Definition poppler-qt5.h:1195
@ NoLayout
Layout not specified.
Definition poppler-qt5.h:1194
@ TwoColumnRight
Display the pages in two columns, with odd-numbered pages on the right.
Definition poppler-qt5.h:1198
@ OneColumn
Display a single column of pages.
Definition poppler-qt5.h:1196
bool hasOptionalContent() const
Test whether this document has "optional content".
QDateTime date(const QString &type) const
bool okToAddNotes() const
Test if the permissions on the document allow annotations to be added or modified,...
Page * page(const QString &label) const
This is an overloaded member function, provided for convenience. It differs from the above function o...
QDateTime creationDate() const
The date of the creation of the document.
bool setCreator(const QString &val)
Set the creator of the document to.
QDomDocument * toc() const
Gets the table of contents (TOC) of the Document.
void setRenderHint(RenderHint hint, bool on=true)
Sets the render hint .
bool setProducer(const QString &val)
Set the producer of the document to.
QStringList infoKeys() const
Obtain a list of the available string information keys.
void * colorDisplayProfile() const
Return the current display profile.
void setPaperColor(const QColor &color)
Sets the paper color.
RenderBackend
The render backends available.
Definition poppler-qt5.h:1209
@ ArthurBackend
Definition poppler-qt5.h:1211
@ SplashBackend
Splash backend.
Definition poppler-qt5.h:1210
static Document * loadFromData(const QByteArray &fileContents, const QByteArray &ownerPassword=QByteArray(), const QByteArray &userPassword=QByteArray())
Load the document from memory.
bool unlock(const QByteArray &ownerPassword, const QByteArray &userPassword)
Provide the passwords required to unlock the document.
QByteArray fontData(const FontInfo &fi) const
The font data if the font is an embedded one.
bool setDate(const QString &key, const QDateTime &val)
Set the Info dict date entry specified by.
PageMode
The page mode.
Definition poppler-qt5.h:1180
@ UseOutlines
Document outline visible.
Definition poppler-qt5.h:1182
@ UseNone
No mode - neither document outline nor thumbnail images are visible.
Definition poppler-qt5.h:1181
@ UseThumbs
Thumbnail images visible.
Definition poppler-qt5.h:1183
@ FullScreen
Fullscreen mode (no menubar, windows controls etc)
Definition poppler-qt5.h:1184
@ UseOC
Optional content group panel visible.
Definition poppler-qt5.h:1185
PdfVersion getPdfVersion() const
The version of the PDF specification that the document conforms to.
QDateTime modificationDate() const
The date of the last change in the document.
void setRenderBackend(RenderBackend backend)
Sets the backend used to render the pages.
RenderHint
The render hints available.
Definition poppler-qt5.h:1221
Qt::LayoutDirection textDirection() const
The predominant reading order for text as supplied by the document's viewer preferences.
QString metadata() const
Gets the metadata stream contents.
DocumentAdditionalActionsType
Describes the flags for additional document actions i.e.
Definition poppler-qt5.h:1924
@ CloseDocument
Performed before closing the document.
Definition poppler-qt5.h:1925
@ PrintDocumentStart
Performed before printing the document.
Definition poppler-qt5.h:1928
@ PrintDocumentFinish
Performed after printing the document.
Definition poppler-qt5.h:1929
@ SaveDocumentFinish
Performed after saving the document.
Definition poppler-qt5.h:1927
@ SaveDocumentStart
Performed before saving the document.
Definition poppler-qt5.h:1926
void setColorDisplayProfile(void *outputProfileA)
Set a color display profile for the current document.
bool okToPrintHighRes() const
Test if the permissions on the document allow it to be printed at high resolution.
QVector< FormFieldSignature * > signatures() const
Returns the signatures of this document.
Link * additionalAction(DocumentAdditionalActionsType type) const
Returns the additional action of the given type for the document or 0 if no action has been defined.
bool okToExtractForAccessibility() const
Test if the permissions on the document allow content extraction (text and perhaps other content) for...
bool setModificationDate(const QDateTime &val)
Set the modification date of the document to.
void * colorRgbProfile() const
Return the current RGB profile.
QString author() const
The author of the document.
bool isEncrypted() const
Test if the document is encrypted.
void setColorDisplayProfileName(const QString &name)
Set a color display profile for the current document.
static QSet< RenderBackend > availableRenderBackends()
The available rendering backends.
void applyResetFormsLink(const LinkResetForm &link)
Resets the form with the details contained in the link.
QList< EmbeddedFile * > embeddedFiles() const
The documents embedded within the PDF document.
bool okToAssemble() const
Test if the permissions on the document allow it to be "assembled" - insertion, rotation and deletion...
OptContentModel * optionalContentModel()
Itemviews model for optional content.
~Document()
Destructor.
QString creator() const
The creator of the document.
bool hasEmbeddedFiles() const
Whether there are any documents embedded in this PDF document.
FontIterator * newFontIterator(int startPage=0) const
Creates a new FontIterator object for font scanning.
QString producer() const
The producer of the document.
PSConverter * psConverter() const
Gets a new PS converter for this document.
PageLayout pageLayout() const
The layout that pages should be shown in when the document is first opened.
void setXRefReconstructedCallback(const std::function< void()> &callback)
Sets the document's XRef reconstruction callback, so whenever a XRef table reconstruction happens the...
bool setSubject(const QString &val)
Set the subject of the document to.
PageMode pageMode() const
The type of mode that should be used by the application when the document is opened.
FormType
Form types.
Definition poppler-qt5.h:1240
@ AcroForm
AcroForm.
Definition poppler-qt5.h:1242
@ NoForm
Document doesn't contain forms.
Definition poppler-qt5.h:1241
bool setCreationDate(const QDateTime &val)
Set the creation date of the document to.
static Document * load(QIODevice *device, const QByteArray &ownerPassword=QByteArray(), const QByteArray &userPassword=QByteArray())
Load the document from a device.
FormType formType() const
Returns the type of forms contained in the document.
QList< FontInfo > fonts() const
The fonts within the PDF document.
bool xrefWasReconstructed() const
Returns whether the document's XRef table has been reconstructed or not.
QColor paperColor() const
The paper color.
QString keywords() const
The keywords of the document.
LinkDestination * linkDestination(const QString &name)
Tries to resolve the named destination name.
bool okToPrint() const
Test if the permissions on the document allow it to be printed.
Page * page(int index) const
Get a specified Page.
RenderBackend renderBackend() const
The currently set render backend.
QVector< int > formCalculateOrder() const
Returns the calculate order for forms (using their id)
bool setKeywords(const QString &val)
Set the keywords of the document to.
QStringList scripts() const
Document-level JavaScript scripts.
QString info(const QString &type) const
bool setInfo(const QString &key, const QString &val)
Set the value of the document's Info dictionary entry specified by.
bool okToFillForm() const
Test if the permissions on the document allow interactive form fields (including signature fields) to...
Container class for an embedded file with a PDF document.
Definition poppler-qt5.h:371
bool isValid() const
Is the embedded file valid?
QString description() const
The description associated with the file, if any.
~EmbeddedFile()
Destructor.
QByteArray checksum() const
The MD5 checksum of the file.
QString name() const
The name associated with the file.
QString mimeType() const
The MIME type of the file, if known.
QDateTime createDate() const
The creation date for the embedded file, if known.
QDateTime modDate() const
The modification date for the embedded file, if known.
int size() const
The size of the file.
QByteArray data()
The data as a byte array.
Container class for information about a font within a PDF document.
Definition poppler-qt5.h:206
Type type() const
The type of font encoding.
FontInfo & operator=(const FontInfo &fi)
Standard assignment operator.
QString name() const
The name of the font.
QString typeName() const
The name of the font encoding used.
QString file() const
The path of the font file used to represent this font on this system, or a null string is the font is...
FontInfo(const FontInfo &fi)
Copy constructor.
Type
The type of font.
Definition poppler-qt5.h:214
QString substituteName() const
The name of the substitute font.
bool isSubset() const
Whether the font provided is only a subset of the full font or not.
~FontInfo()
Destructor.
bool isEmbedded() const
Whether the font is embedded in the file, or not.
Iterator for reading the fonts in a document.
Definition poppler-qt5.h:332
int currentPage() const
Returns the current page where the iterator is.
~FontIterator()
Destructor.
bool hasNext() const
Checks whether there is at least one more page to iterate, ie returns false when the iterator is beyo...
QList< FontInfo > next()
Returns the fonts of the current page and then advances the iterator to the next page.
A destination.
Definition poppler-link.h:74
ResetForm: an action to reset form fields.
Definition poppler-link.h:708
Container class for a movie object in a PDF document.
Definition poppler-qt5.h:2564
QString url() const
The URL of the movie to be played.
bool showControls() const
Whether show a bar with movie controls.
int rotation() const
The rotation (either 0, 90, 180, or 270 degrees clockwise) for the movie,.
bool showPosterImage() const
Returns whether a poster image should be shown if the movie is not playing.
QSize size() const
The size of the movie.
QImage posterImage() const
Returns the poster image that should be shown if the movie is not playing.
PlayMode
The play mode for playing the movie.
Definition poppler-qt5.h:2572
@ PlayRepeat
Play continuously until stopped.
Definition poppler-qt5.h:2575
@ PlayOnce
Play the movie once, closing the movie controls at the end.
Definition poppler-qt5.h:2573
@ PlayOpen
Like PlayOnce, but leaving the controls open.
Definition poppler-qt5.h:2574
PlayMode playMode() const
How to play the movie.
Model for optional content.
Definition poppler-optcontent.h:50
Item in the outline of a PDF document.
Definition poppler-qt5.h:1049
QString uri() const
The URI to which the item links.
QString name() const
The name of the item which should be displayed to the user.
QVector< OutlineItem > children() const
Gets the child items of this item.
QSharedPointer< const LinkDestination > destination() const
The destination referred to by this item.
bool isOpen() const
Indicates whether the item should initially be display in an expanded or collapsed state.
OutlineItem()
Constructs a null item, i.e.
bool isNull() const
Indicates whether an item is null, i.e.
QString externalFileName() const
The external file name of the document to which the.
bool hasChildren() const
Determines if this item has any child items.
Holds data for a new signature.
Definition poppler-qt5.h:2265
QColor backgroundColor() const
Default: QColor(240, 240, 240)
QColor fontColor() const
Default: red.
QColor borderColor() const
Default: red.
double fontSize() const
Default: 10.
double borderWidth() const
border width in points
QString location() const
Signature's property Location.
QString signatureLeftText() const
If this text is not empty, the signature representation will split in two, with this text on the left...
QString fieldPartialName() const
Default: QUuid::createUuid().toString()
double leftFontSize() const
Default: 20.
QByteArray documentOwnerPassword() const
Document owner password (needed if the document that is being signed is password protected)
QString reason() const
Signature's property Reason.
QByteArray documentUserPassword() const
Document user password (needed if the document that is being signed is password protected)
QString imagePath() const
Filesystem path to an image file to be used as background image for the signature annotation widget.
Converts a PDF to PDF (thus saves a copy of the document).
Definition poppler-qt5.h:2225
bool convert() override
Does the conversion.
ErrorString lastSigningErrorDetails() const
A string with a string that might offer more details of the signing result failure.
PDFOption
Options for the PDF export.
Definition poppler-qt5.h:2233
~PDFConverter() override
Destructor.
void setPDFOptions(PDFOptions options)
Sets the options for the PDF export.
PDFOptions pdfOptions() const
The currently set options for the PDF export.
bool sign(const NewSignatureData &data)
Sign PDF at given Annotation / signature form.
SigningResult
Definition poppler-qt5.h:2418
@ FieldAlreadySigned
Trying to sign a field that is already signed.
Definition poppler-qt5.h:2420
@ InternalError
Unexpected error, likely a bug in poppler.
Definition poppler-qt5.h:2422
@ KeyMissing
Key not found (Either the input key is not from the list or the available keys has changed underneath...
Definition poppler-qt5.h:2423
@ UserCancelled
User cancelled the process.
Definition poppler-qt5.h:2425
@ GenericSigningError
Unclassified error.
Definition poppler-qt5.h:2421
@ BadPassphrase
User entered bad passphrase.
Definition poppler-qt5.h:2426
@ WriteFailed
Write failed (permissions, faulty disk, ...)
Definition poppler-qt5.h:2424
@ SigningSuccess
No error.
Definition poppler-qt5.h:2419
SigningResult lastSigningResult() const
The last signing result, mostly relevant if sign returns false.
Converts a PDF to PS.
Definition poppler-qt5.h:2085
void setPSOptions(PSOptions options)
Sets the options for the PS export.
void setStrictMargins(bool strictMargins)
Defines if margins have to be strictly followed (even if that means changing aspect ratio),...
PSOption
Options for the PS export.
Definition poppler-qt5.h:2095
void setPageConvertedCallback(void(*callback)(int page, void *payload), void *payload)
Sets a function that will be called each time a page is converted.
void setRightMargin(int marginRight)
Sets the output right margin.
void setBottomMargin(int marginBottom)
Sets the output bottom margin.
bool convert() override
Does the conversion.
void setTopMargin(int marginTop)
Sets the output top margin.
void setForceOverprintPreview(bool forceOverprintPreview)
Defines if the page will be rasterized to an image with overprint preview enabled before printing.
~PSConverter() override
Destructor.
void setVDPI(double vDPI)
Sets the vertical DPI.
void setLeftMargin(int marginLeft)
Sets the output left margin.
void setPaperHeight(int paperHeight)
Sets the output paper height.
void setTitle(const QString &title)
Sets the title of the PS Document.
void setPageList(const QList< int > &pageList)
Sets the list of pages to print.
void setForceRasterize(bool forceRasterize)
Defines if the page will be rasterized to an image before printing.
void setHDPI(double hDPI)
Sets the horizontal DPI.
void setPaperWidth(int paperWidth)
Sets the output paper width.
void setRotate(int rotate)
Sets the rotate.
PSOptions psOptions() const
The currently set options for the PS export.
Describes how a PDF file viewer shall perform the transition from one page to another.
Definition poppler-page-transition.h:48
A page in a document.
Definition poppler-qt5.h:461
void defaultCTM(double *CTM, double dpiX, double dpiY, int rotate, bool upsideDown)
The default CTM.
bool(*)(const QVariant &) ShouldRenderToImagePartialQueryFunc
Partial Update query renderToImage callback.
Definition poppler-qt5.h:577
QList< Link * > links() const
Gets the links of the page.
Orientation
Types of orientations that are possible.
Definition poppler-qt5.h:940
@ Seascape
Seascape orientation (portrait, with 270 degrees clockwise rotation)
Definition poppler-qt5.h:943
@ Landscape
Landscape orientation (portrait, with 90 degrees clockwise rotation )
Definition poppler-qt5.h:941
@ Portrait
Normal portrait orientation.
Definition poppler-qt5.h:942
SearchFlag
Flags to modify the search behaviour.
Definition poppler-qt5.h:794
void addAnnotation(const Annotation *ann)
Adds an annotation to the page.
QList< Annotation * > annotations(const QSet< Annotation::SubType > &subtypes) const
Returns the annotations of the page.
int index() const
Returns the index of the page.
SearchDirection
The starting point for a search.
Definition poppler-qt5.h:775
@ FromTop
Start sorting at the top of the document.
Definition poppler-qt5.h:776
@ NextResult
Find the next result, moving "down the page".
Definition poppler-qt5.h:777
PainterFlag
Additional flags for the renderToPainter method.
Definition poppler-qt5.h:505
QList< FormField * > formFields() const
Returns the form fields on the page The caller gets the ownership of the returned objects.
Rotation
The type of rotation to apply for an operation.
Definition poppler-qt5.h:474
~Page()
Destructor.
Orientation orientation() const
The orientation of the page.
SearchMode
The type of search to perform.
Definition poppler-qt5.h:785
@ CaseSensitive
Case differences cause no match in searching.
Definition poppler-qt5.h:786
TextLayout
How the text is going to be returned.
Definition poppler-qt5.h:495
@ PhysicalLayout
The text is layouted to resemble the real page layout.
Definition poppler-qt5.h:496
PageAction
The kinds of page actions.
Definition poppler-qt5.h:485
@ Opening
The action when a page is "opened".
Definition poppler-qt5.h:486
double duration() const
Returns the page duration.
void(*)(const QImage &, const QVariant &) RenderToImagePartialUpdateFunc
Partial Update renderToImage callback.
Definition poppler-qt5.h:567
QString label() const
Returns the label of the page, or a null string is the page has no label.
QList< Annotation * > annotations() const
Returns the annotations of the page.
void removeAnnotation(const Annotation *ann)
Removes an annotation from the page and destroys the annotation object.
bool(*)(const QVariant &) ShouldAbortQueryFunc
Abort query function callback.
Definition poppler-qt5.h:638
Container class for a sound file in a PDF document.
Definition poppler-qt5.h:2488
double samplingRate() const
The sampling rate of the sound.
SoundEncoding soundEncoding() const
The encoding used for the sound.
int channels() const
The number of sound channels to use to play the sound.
SoundType soundType() const
Is the sound embedded (SoundObject::Embedded) or external (SoundObject::External)?
QString url() const
The URL of the sound file to be played, in case of SoundObject::External.
SoundEncoding
The encoding format used for the sound.
Definition poppler-qt5.h:2503
@ muLaw
mu-law-encoded samples
Definition poppler-qt5.h:2506
@ Signed
Twos-complement values.
Definition poppler-qt5.h:2505
@ Raw
Raw encoding, with unspecified or unsigned values in the range [ 0, 2^B - 1 ].
Definition poppler-qt5.h:2504
SoundType
The type of sound.
Definition poppler-qt5.h:2494
@ External
The real sound file is external.
Definition poppler-qt5.h:2495
int bitsPerSample() const
The number of bits per sample value per channel.
QByteArray data() const
The data of the sound, in case of SoundObject::Embedded.
Describes the physical location of text on a document page.
Definition poppler-qt5.h:149
bool hasSpaceAfter() const
Returns whether there is a space character after this text box.
TextBox(const QString &text, const QRectF &bBox)
The default constructor sets the text and the rectangle that contains the text.
QString text() const
Returns the text of this text box.
~TextBox()
Destructor.
QRectF charBoundingBox(int i) const
Returns the bounding box of the i -th characted of the word.
TextBox * nextWord() const
Returns the pointer to the next text box, if there is one.
QRectF boundingBox() const
Returns the position of the text, in point, i.e., 1/72 of an inch.
The Poppler Qt5 binding.
Definition poppler-annotation.h:50
QDateTime convertDate(char *dateString)
Conversion from PDF date string format to QDateTime.
void(*)(const QString &, const QVariant &) PopplerDebugFunc
Debug/error function.
Definition poppler-qt5.h:100
bool isOverprintPreviewAvailable()
Whether the overprint preview functionality is available.
ErrorStringType
The various types of error strings.
Definition poppler-qt5.h:121
@ ErrorCodeString
The string should be treated like a error code.
@ UserString
The string should be treated as an advanced error message that can be shown to user.
bool isCmsAvailable()
Whether the color management functions are available.
void setDebugErrorFunction(PopplerDebugFunc debugFunction, const QVariant &closure)
Set a new debug/error output function.
The version specification of a pdf file.
Definition poppler-qt5.h:1689
Combination of an error data and type of error string.
Definition poppler-qt5.h:134