Loading...
Searching...
No Matches
Convert.h
Go to the documentation of this file.
1//---------------------------------------------------------------------------------------
2// Copyright (c) 2001-2025 by Apryse Software Inc. All Rights Reserved.
3// Consult legal.txt regarding legal and license information.
4//---------------------------------------------------------------------------------------
5#ifndef PDFTRON_H_CPPPDFConvert
6#define PDFTRON_H_CPPPDFConvert
7
8#include <PDF/PDFDoc.h>
9#include <PDF/Page.h>
10#include <PDF/PDFRasterizer.h>
17#include <PDF/Reflow.h>
18#include <C/PDF/TRN_Convert.h>
19#include <SDF/Obj.h>
20#include <SDF/ObjSet.h>
21
22namespace pdftron{
23 namespace PDF {
24
26// Experimental - Developer use only
27class ConversionMonitor
28{
29public:
30 bool Next();
31 bool Ready();
32 UInt32 Progress();
33 Filters::Filter Filter();
34 ConversionMonitor();
35 void Destroy();
36 ~ConversionMonitor();
37 ConversionMonitor(const ConversionMonitor& copy);
38 ConversionMonitor& operator=(const ConversionMonitor& other);
39
43 operator bool () { return mp_impl!=0;}
44#ifndef SWIGHIDDEN
45 TRN_ConversionMonitor mp_impl;
46 ConversionMonitor(TRN_ConversionMonitor impl, bool is_owner);
47 bool m_owner;
48#endif
49};
51
52class XPSOutputOptions;
53class XODOutputOptions;
54class HTMLOutputOptions;
55class WordOutputOptions;
56class ExcelOutputOptions;
57class PowerPointOutputOptions;
58class EPUBOutputOptions;
59class SVGOutputOptions;
60class TiffOutputOptions;
61class Printer;
105
106class Convert
107{
108public:
109 typedef pdftron::PDF::XPSOutputOptions XPSOutputOptions;
110 typedef pdftron::PDF::XODOutputOptions XODOutputOptions;
111 typedef pdftron::PDF::HTMLOutputOptions HTMLOutputOptions;
112 typedef pdftron::PDF::WordOutputOptions WordOutputOptions;
113 typedef pdftron::PDF::ExcelOutputOptions ExcelOutputOptions;
114 typedef pdftron::PDF::PowerPointOutputOptions PowerPointOutputOptions;
115 typedef pdftron::PDF::EPUBOutputOptions EPUBOutputOptions;
116 typedef pdftron::PDF::SVGOutputOptions SVGOutputOptions;
117 typedef pdftron::PDF::TiffOutputOptions TiffOutputOptions;
118 typedef pdftron::PDF::Printer Printer;
119
120 enum FlattenThresholdFlag {
122 e_very_strict,
124 e_strict,
126 e_default,
128 e_keep_most,
130 e_keep_all
131 };
132
133 enum FlattenFlag {
137 e_off,
142 e_simple,
150 e_fast,
151
157 e_high_quality
158 };
159
169 static void FromXps(PDFDoc & in_pdfdoc, const UString & in_filename);
170
182 static void FromXps(PDFDoc & in_pdfdoc, const char* buf, size_t buf_sz);
183
194 static void FromEmf(PDFDoc & in_pdfdoc, const UString & in_filename);
195
220 static void FromText(PDFDoc & in_pdfdoc, const UString& in_filename, const SDF::Obj& in_options = SDF::Obj());
221
231 static void ToEmf(PDFDoc & in_pdfdoc, const UString & in_filename);
232
242 static void ToEmf(Page & in_page, const UString & in_filename);
243
244
254 static void ToSvg(PDFDoc & in_pdfdoc, const UString & in_filename, const SVGOutputOptions& in_options);
255
263 static void ToSvg(PDFDoc & in_pdfdoc, const UString & in_filename);
264
274 static void ToSvg(Page & in_page, const UString & in_filename, const SVGOutputOptions& in_options);
275
283 static void ToSvg(Page & in_page, const UString & in_filename);
284
297 static void ToXps(PDFDoc & in_pdfdoc, const UString & in_filename, const XPSOutputOptions& options);
298
307 static void ToXps(PDFDoc & in_pdfdoc, const UString & in_filename);
308
325 static void ToXps(const UString & in_inputFilename, const UString & in_outputFilename, const XPSOutputOptions& options);
326
339 static void ToXps(const UString & in_inputFilename, const UString & in_outputFilename);
340
357 static void ToXod(const UString & in_filename, const UString & out_filename, const XODOutputOptions& options);
358
371 static void ToXod(const UString & in_filename, const UString & out_filename);
372
387 static void ToXod(PDFDoc & in_pdfdoc, const UString & out_filename, const XODOutputOptions& options);
388
399 static void ToXod(PDFDoc & in_pdfdoc, const UString & out_filename);
400
422 static void ToHtml(const UString & in_filename, const UString & out_path, const HTMLOutputOptions& options);
423
437 static void ToHtml(const UString & in_filename, const UString & out_path);
438
439
448 static UString PageToHtml(const Page & page);
449
450 static UString PageToHtmlZoned(const Page & page, const UString & json_zones);
451
470 static void ToHtml(PDFDoc & in_pdfdoc, const UString & out_path, const HTMLOutputOptions& options);
471
482 static void ToHtml(PDFDoc & in_pdfdoc, const UString & out_path);
483
499 static void ToWord(const UString & in_filename, const UString & out_path, const WordOutputOptions& options);
500
512 static void ToWord(const UString & in_filename, const UString & out_path);
513
525 static void ToWord(PDFDoc& in_pdfdoc, Filters::Filter& out_filter);
526
540 static void ToWord(PDFDoc& in_pdfdoc, Filters::Filter& out_filter, const WordOutputOptions& options);
541
559 static void ToWord(PDFDoc & in_pdfdoc, const UString & out_path, const WordOutputOptions& options);
560
574 static void ToWord(PDFDoc & in_pdfdoc, const UString & out_path);
575
591 static void ToExcel(const UString& in_filename, const UString& out_path, const ExcelOutputOptions& options);
592
604 static void ToExcel(const UString& in_filename, const UString& out_path);
605
623 static void ToExcel(PDFDoc& in_pdfdoc, const UString& out_path, const ExcelOutputOptions& options);
624
638 static void ToExcel(PDFDoc& in_pdfdoc, const UString& out_path);
639
653 static void ToExcel(PDFDoc& in_pdfdoc, Filters::Filter& out_filter);
654
670 static void ToExcel(PDFDoc& in_pdfdoc, Filters::Filter& out_filter, const ExcelOutputOptions& options);
671
687 static void ToPowerPoint(const UString& in_filename, const UString& out_path, const PowerPointOutputOptions& options);
688
700 static void ToPowerPoint(const UString& in_filename, const UString& out_path);
701
719 static void ToPowerPoint(PDFDoc& in_pdfdoc, const UString& out_path, const PowerPointOutputOptions& options);
720
734 static void ToPowerPoint(PDFDoc& in_pdfdoc, const UString& out_path);
735
749 static void ToPowerPoint(PDFDoc& in_pdfdoc, Filters::Filter& out_filter);
750
768 static void ToPowerPoint(PDFDoc& in_pdfdoc, Filters::Filter& out_filter, const PowerPointOutputOptions& options);
769
790 static void ToEpub(const UString & in_filename, const UString & out_path, const HTMLOutputOptions& html_options, const EPUBOutputOptions& epub_options);
791
808 static void ToEpub(const UString & in_filename, const UString & out_path, const HTMLOutputOptions& html_options);
809
822 static void ToEpub(const UString & in_filename, const UString & out_path);
823
842 static void ToEpub(PDFDoc & in_pdfdoc, const UString & out_path, const HTMLOutputOptions& html_options, const EPUBOutputOptions& epub_options);
843
858 static void ToEpub(PDFDoc & in_pdfdoc, const UString & out_path, const HTMLOutputOptions& html_options);
859
870 static void ToEpub(PDFDoc & in_pdfdoc, const UString & out_path);
871
884 static void ToTiff(const UString & in_filename, const UString & out_path, const TiffOutputOptions& options);
885
894 static void ToTiff(const UString & in_filename, const UString & out_path);
895
908 static void ToTiff(PDFDoc & in_pdfdoc, const UString & out_path, const TiffOutputOptions& options);
909
918 static void ToTiff(PDFDoc & in_pdfdoc, const UString & out_path);
919
932 static void ToTiff(const UString & in_filename, Filters::Filter& out_filter, const TiffOutputOptions& options);
933
942 static void ToTiff(const UString & in_filename, Filters::Filter& out_filter);
943
956 static void ToTiff(PDFDoc & in_pdfdoc, Filters::Filter& out_filter, const TiffOutputOptions& options);
957
966 static void ToTiff(PDFDoc & in_pdfdoc, Filters::Filter& out_filter);
967
984 static Filters::Filter ToXod(const UString & in_filename, const XODOutputOptions& options);
985
998 static Filters::Filter ToXod(const UString & in_filename);
999
1014 static Filters::Filter ToXod(PDFDoc & in_pdfdoc, const XODOutputOptions& options);
1015
1026 static Filters::Filter ToXod(PDFDoc & in_pdfdoc);
1028 // Experimental - Developer use only
1029 static ConversionMonitor ToXodWithMonitor(PDFDoc & in_pdfdoc, const XODOutputOptions& options);
1030 static ConversionMonitor ToXodWithMonitor(PDFDoc & in_pdfdoc);
1031
1032
1054 static void WordToPDF( PDFDoc & in_pdfdoc, const UString & in_filename, WordToPDFOptions* options);
1055
1082 static DocumentConversion WordToPDFConversion( PDFDoc & in_pdfdoc, const UString & in_filename, WordToPDFOptions* options);
1083
1105 static void WordToPDF( PDFDoc & in_pdfdoc, Filters::Filter in_stream, WordToPDFOptions* options);
1106
1133 static DocumentConversion WordToPDFConversion( PDFDoc & in_pdfdoc, Filters::Filter in_stream, WordToPDFOptions* options);
1134
1156 static void OfficeToPDF( PDFDoc & in_pdfdoc, const UString & in_filename, ConversionOptions* options);
1157
1183 static DocumentConversion StreamingPDFConversion( PDFDoc & in_pdfdoc, const UString & in_filename, ConversionOptions* options);
1184
1208 static DocumentConversion StreamingPDFConversion(const UString & in_filename, ConversionOptions* options);
1209
1210 static Reflow CreateReflow(Page & in_page, const UString & json_zones);
1211
1233 static void OfficeToPDF( PDFDoc & in_pdfdoc, Filters::Filter in_stream, ConversionOptions* options);
1234
1260 static DocumentConversion StreamingPDFConversion( PDFDoc & in_pdfdoc, Filters::Filter in_stream, ConversionOptions* options);
1261
1285 static DocumentConversion StreamingPDFConversion(Filters::Filter in_stream, ConversionOptions* options);
1286
1306 static void ToPdf(PDFDoc & in_pdfdoc, const UString & in_filename);
1307
1318 static void FromCAD(PDFDoc& in_pdfdoc, const UString& in_filename, CADConvertOptions* opts = 0);
1319
1329
1330 static void FromDICOM(PDFDoc& in_pdfdoc, const UString& in_filename, AdvancedImagingConvertOptions* opts = 0);
1331
1332
1340 static void FromSVG(PDFDoc& in_pdfdoc, const UString& in_filename, SVGConvertOptions* opts = 0);
1341
1348 static void FromTiff(PDFDoc& in_pdfdoc, Filters::Filter in_data);
1349
1373 static TemplateDocument CreateOfficeTemplate(const UString& in_filename, ConversionOptions* options);
1374
1398 static TemplateDocument CreateOfficeTemplate(Filters::Filter in_stream, ConversionOptions* options);
1399
1412 static bool RequiresPrinter(const UString & in_filename);
1413
1414
1415private:
1416 Convert ();
1417 ~Convert ();
1418};
1419
1423class XPSOutputCommonOptions
1424{
1425public:
1429 XPSOutputCommonOptions();
1434 void SetPrintMode(bool print_mode);
1435
1440 void SetDPI(UInt32 dpi);
1441
1446 void SetRenderPages(bool render);
1447
1452 void SetThickenLines(bool thicken);
1453
1459 void GenerateURLLinks(bool generate);
1460
1461 enum OverprintPreviewMode
1462 {
1463 e_op_off = 0,
1464 e_op_on,
1465 e_op_pdfx_on
1466 };
1467
1476 void SetOverprint(enum OverprintPreviewMode mode);
1477
1478 TRN_Obj m_obj;
1479protected:
1480 friend class Convert;
1481 SDF::ObjSet m_objset;
1482};
1483
1487class XPSOutputOptions : public XPSOutputCommonOptions
1488{
1489public:
1494 void SetOpenXps(bool openxps);
1495};
1496
1500class XODOutputOptions : public XPSOutputCommonOptions
1501{
1502public:
1503
1504 enum AnnotationOutputFlag {
1505 e_internal_xfdf, // include the annotation file in the XOD output. This is the default option
1506 e_external_xfdf, // output the annotation file externally to the same output path with extension .xfdf.
1507 // This is not available when using streaming conversion
1508 e_flatten // flatten all annotations that are not link annotations
1509 };
1510
1515 void SetExtractUsingZorder(bool use_zorder);
1516
1521 void SetOutputThumbnails(bool include_thumbs);
1522
1529 void SetThumbnailSize(UInt32 size);
1530
1538 void SetThumbnailSize(UInt32 regular_size, UInt32 large_size);
1539
1545 void SetElementLimit(UInt32 element_limit);
1546
1553 void SetOpacityMaskWorkaround(bool opacity_render);
1554
1563 void SetMaximumImagePixels(UInt32 max_pixels);
1564
1571 void SetFlattenContent(enum Convert::FlattenFlag flatten);
1572
1578 void SetFlattenThreshold(enum Convert::FlattenThresholdFlag threshold);
1579
1585 void SetPreferJPG(bool prefer_jpg);
1586
1591 void SetJPGQuality(UInt32 quality);
1592
1598 void SetSilverlightTextWorkaround(bool workaround);
1599
1604 void SetAnnotationOutput(enum AnnotationOutputFlag annot_output);
1605
1611 void SetExternalParts(bool generate);
1612
1618 void SetEncryptPassword(const char* pass);
1619
1627 void UseSilverlightFlashCompatible(bool compatible);
1628};
1629
1633class OutputOptionsOCR
1634{
1635public:
1636 enum LanguageChoice
1637 {
1638 e_lang_auto = 0, /* Indicates automatic OCR language detection. */
1639 e_lang_catalan, /* Indicates the Catalan language for OCR. */
1640 e_lang_danish, /* Indicates the Danish language for OCR. */
1641 e_lang_german, /* Indicates the German language for OCR. */
1642 e_lang_english, /* Indicates the English language for OCR. */
1643 e_lang_spanish, /* Indicates the Spanish language for OCR. */
1644 e_lang_finnish, /* Indicates the Finnish language for OCR. */
1645 e_lang_french, /* Indicates the French language for OCR. */
1646 e_lang_italian, /* Indicates the Italian language for OCR. */
1647 e_lang_dutch, /* Indicates the Dutch language for OCR. */
1648 e_lang_norwegian, /* Indicates the Norwegian language for OCR. */
1649 e_lang_portuguese, /* Indicates the Portuguese language for OCR. */
1650 e_lang_polish, /* Indicates the Polish language for OCR. */
1651 e_lang_romanian, /* Indicates the Romanian language for OCR. */
1652 e_lang_russian, /* Indicates the Russian language for OCR. */
1653 e_lang_slovenian, /* Indicates the Slovenian language for OCR. */
1654 e_lang_swedish, /* Indicates the Swedish language for OCR. */
1655 e_lang_turkish /* Indicates the Turkish language for OCR. */
1656 };
1657
1658 enum PreferredOCREngine
1659 {
1660 e_engine_default = 0,
1661 e_engine_tesseract
1662 };
1663
1664 static UString LanguageChoiceToString(LanguageChoice language);
1665
1666 static UString PreferredOCRChoiceToString(PreferredOCREngine engine);
1667};
1668
1672class StructuredOutputOptions
1673{
1674public:
1675 enum SectionConversionSetting
1676 {
1677 e_Recover = 0, /* Recover as headers, footers, and/or footnotes. */
1678 e_DoNotDetect, /* Place in the body of the document. */
1679 e_DetectAndRemove /* Remove detected headers, footers, and/or footnotes. */
1680 };
1681
1682 static StructuredOutputOptions::SectionConversionSetting SectionConversionSettingFromOption(TRN_Obj& obj);
1683};
1684
1688class HTMLOutputOptions
1689{
1690public:
1694 HTMLOutputOptions();
1695
1701 void SetPreferJPG(bool prefer_jpg);
1702
1709 void SetJPGQuality(UInt32 quality);
1710
1717 void SetDPI(UInt32 dpi);
1718
1728 void SetMaximumImagePixels(UInt32 max_pixels);
1729
1730 enum ContentReflowSetting
1731 {
1732 e_fixed_position = 0, /* Content uses fixed positioning (default). */
1733 e_reflow_paragraphs, /* Deprecated. Text flows within paragraphs. */
1734 e_reflow_full /* Text flows freely edge-to-edge in a single column. */
1735 };
1736
1748 void SetContentReflowSetting(ContentReflowSetting reflow);
1749
1755 void SetScale(double scale);
1756
1762 void SetExternalLinks(bool enable);
1763
1769 void SetInternalLinks(bool enable);
1770
1776 void SetSimplifyText(bool enable);
1777
1783 void SetReportFile(const UString& path);
1784
1791 void SetTitle(const UString& title);
1792
1800 void SetImageDPI(UInt32 dpi);
1801
1807 void SetEmbedImages(bool embed);
1808
1816 void SetFileConversionTimeoutSeconds(int seconds);
1817
1824 void SetPages(int page_from, int page_to);
1825
1831 void SetPDFPassword(const UString& password);
1832
1833 enum SearchableImageSetting
1834 {
1835 e_ocr_image_text = 0, /* Convert both images and pre-existing hidden text from previous OCR. Only applies to e_reflow_paragraphs. */
1836 e_ocr_image, /* Convert images only, ignoring pre-existing text from previous OCR, and do not perform any new OCR. */
1837 e_ocr_text, /* Convert pre-existing text from previous OCR only (e_reflow_paragraphs mode). Perform new OCR on scanned pages (e_reflow_full mode). */
1838 e_ocr_off, /* Convert images only, ignoring pre-existing text from previous OCR, and do not perform any new OCR. */
1839 e_ocr_always /* Perform new OCR on all pages. (e_reflow_full mode). */
1840 };
1841
1852 void SetSearchableImageSetting(SearchableImageSetting setting);
1853
1860 void SetSimpleLists(bool enable);
1861
1867 void SetConnectHyphens(bool connect);
1868
1876 void SetDisableVerticalSplit(bool disable);
1877
1884 void SetNoPageWidth(bool enable);
1885
1891 void SetLanguage(OutputOptionsOCR::LanguageChoice language);
1892
1898 void SetPreferredOCREngine(OutputOptionsOCR::PreferredOCREngine engine);
1899
1905 void SetHeadersAndFootersSetting(StructuredOutputOptions::SectionConversionSetting option);
1906
1912 void SetFootnotesSetting(StructuredOutputOptions::SectionConversionSetting option);
1913
1919 StructuredOutputOptions::SectionConversionSetting GetHeadersAndFootersSetting();
1920
1926 StructuredOutputOptions::SectionConversionSetting GetFootnotesSetting();
1927
1934 void SetTextRecoveryNSE(bool use_ocr);
1935
1936protected:
1937 TRN_Obj m_obj;
1938 friend class Convert;
1939 SDF::ObjSet m_objset;
1940};
1941
1945class WordOutputOptions
1946{
1947public:
1951 WordOutputOptions();
1952
1953 enum WordOutputFormat
1954 {
1955 e_wof_docx = 0,
1956 e_wof_doc,
1957 e_wof_rtf,
1958 e_wof_txt
1959 };
1960
1968 void SetWordOutputFormat(WordOutputFormat format);
1969
1975 void SetPages(int page_from, int page_to);
1976
1981 void SetPDFPassword(const UString& password);
1982
1983 enum SearchableImageSetting
1984 {
1985 e_ocr_image_text = 0, /* Deprecated. OCR will be performed. */
1986 e_ocr_image, /* Deprecated. OCR will not be performed. */
1987 e_ocr_text, /* Indicates that OCR will be performed on scanned pages, and the recognized text replaces the image pixels underneath (default). */
1988 e_ocr_off, /* Indicates that OCR will not be performed. */
1989 e_ocr_always /* Indicates that OCR will always be performed on all pages, and the recognized text replaces the image pixels underneath. */
1990 };
1991
1998 void SetSearchableImageSetting(SearchableImageSetting setting);
1999
2005 void SetTextRecoveryNSE(bool use_ocr);
2006
2012 void SetDetectTOC(bool detect_toc);
2013
2018 void SetConnectHyphens(bool connect);
2019
2024 void SetLanguage(OutputOptionsOCR::LanguageChoice language);
2025
2030 void SetPreferredOCREngine(OutputOptionsOCR::PreferredOCREngine engine);
2031
2037 void SetCustomOCRLanguage(const UString& ocrlang);
2038
2043 void SetPrioritizeVisualAppearance(bool replica);
2044
2049 void SetHeadersAndFootersSetting(StructuredOutputOptions::SectionConversionSetting option);
2050
2055 void SetFootnotesSetting(StructuredOutputOptions::SectionConversionSetting option);
2056
2061 StructuredOutputOptions::SectionConversionSetting GetHeadersAndFootersSetting();
2062
2067 StructuredOutputOptions::SectionConversionSetting GetFootnotesSetting();
2068
2069protected:
2070 TRN_Obj m_obj;
2071 friend class Convert;
2072 SDF::ObjSet m_objset;
2073};
2074
2078class ExcelOutputOptions
2079{
2080public:
2084 ExcelOutputOptions();
2085
2091 void SetPages(int page_from, int page_to);
2092
2097 void SetPDFPassword(const UString& password);
2098
2103 void SetLanguage(OutputOptionsOCR::LanguageChoice language);
2104
2109 void SetPreferredOCREngine(OutputOptionsOCR::PreferredOCREngine engine);
2110
2116 void SetCustomOCRLanguage(const UString& ocrlang);
2117
2118 enum SearchableImageSetting
2119 {
2120 e_ocr_text = 2, /* Indicates that OCR will be performed on scanned pages, and the recognized text replaces the image pixels underneath (default). */
2121 e_ocr_off, /* Indicates that OCR will not be performed. */
2122 e_ocr_always /* Indicates that OCR will always be performed on all pages, and the recognized text replaces the image pixels underneath. */
2123 };
2124
2131 void SetSearchableImageSetting(SearchableImageSetting setting);
2132
2138 void SetTextRecoveryNSE(bool use_ocr);
2139
2144 void SetNonTableContent(bool non_tables);
2145
2150 void SetSingleSheet(bool single_sheet);
2151
2156 void SetPageSingleSheet(bool page_single);
2157
2162 void SetHeadersAndFootersSetting(StructuredOutputOptions::SectionConversionSetting option);
2163
2168 void SetFootnotesSetting(StructuredOutputOptions::SectionConversionSetting option);
2169
2174 StructuredOutputOptions::SectionConversionSetting GetHeadersAndFootersSetting();
2175
2180 StructuredOutputOptions::SectionConversionSetting GetFootnotesSetting();
2181
2182protected:
2183 TRN_Obj m_obj;
2184 friend class Convert;
2185 SDF::ObjSet m_objset;
2186};
2187
2191class PowerPointOutputOptions
2192{
2193public:
2197 PowerPointOutputOptions();
2198
2204 void SetPages(int page_from, int page_to);
2205
2210 void SetPDFPassword(const UString& password);
2211
2216 void SetLanguage(OutputOptionsOCR::LanguageChoice language);
2217
2222 void SetPreferredOCREngine(OutputOptionsOCR::PreferredOCREngine engine);
2223
2229 void SetCustomOCRLanguage(const UString& ocrlang);
2230
2231 enum SearchableImageSetting
2232 {
2233 e_ocr_text = 2, /* Indicates that OCR will be performed on scanned pages, and the recognized text replaces the image pixels underneath (default). */
2234 e_ocr_off, /* Indicates that OCR will not be performed. */
2235 e_ocr_always /* Indicates that OCR will always be performed on all pages, and the recognized text replaces the image pixels underneath. */
2236 };
2237
2244 void SetSearchableImageSetting(SearchableImageSetting setting);
2245
2251 void SetTextRecoveryNSE(bool use_ocr);
2252
2257 void SetHeadersAndFootersSetting(StructuredOutputOptions::SectionConversionSetting option);
2258
2263 void SetFootnotesSetting(StructuredOutputOptions::SectionConversionSetting option);
2264
2269 StructuredOutputOptions::SectionConversionSetting GetHeadersAndFootersSetting();
2270
2275 StructuredOutputOptions::SectionConversionSetting GetFootnotesSetting();
2276
2277protected:
2278 TRN_Obj m_obj;
2279 friend class Convert;
2280 SDF::ObjSet m_objset;
2281};
2282
2286class EPUBOutputOptions
2287{
2288public:
2292 EPUBOutputOptions();
2293
2298 void SetExpanded(bool expanded);
2299
2306 void SetReuseCover(bool reuse);
2307protected:
2308 TRN_Obj m_obj;
2309 friend class Convert;
2310 SDF::ObjSet m_objset;
2311};
2312
2316class SVGOutputOptions
2317{
2318public:
2319
2323 SVGOutputOptions();
2324
2329 void SetEmbedImages(bool embed_images);
2330
2335 void SetNoFonts(bool no_fonts);
2336
2342 void SetSvgFonts(bool svg_fonts);
2343
2350 void SetEmbedFonts(bool embed_fonts);
2351
2356 void SetNoUnicode(bool no_unicode);
2357
2362 void SetIndividualCharPlacement(bool individual_char_placement);
2363
2368 void SetRemoveCharPlacement(bool remove_char_placement);
2369
2376 void SetFlattenContent(enum Convert::FlattenFlag flatten);
2377
2383 void SetFlattenThreshold(enum Convert::FlattenThresholdFlag threshold);
2384
2390 void SetFlattenDPI(UInt32 dpi);
2391
2400 void SetFlattenMaximumImagePixels(UInt32 max_pixels);
2401
2406 void SetCompress(bool svgz);
2407
2412 void SetOutputThumbnails(bool include_thumbs);
2413
2419 void SetThumbnailSize(UInt32 size);
2420
2425 void SetCreateXmlWrapper(bool xml);
2426
2431 void SetDtd(bool dtd);
2432
2437 void SetAnnots(bool annots);
2438
2447 void SetOverprint(PDFRasterizer::OverprintPreviewMode mode);
2448protected:
2449 TRN_Obj m_obj;
2450 friend class Convert;
2451 SDF::ObjSet m_objset;
2452};
2453
2457class TiffOutputOptions
2458{
2459public:
2463 TiffOutputOptions();
2464
2471 void SetBox(enum Page::Box type);
2472
2479 void SetRotate(enum Page::Rotate rotation);
2480
2486 void SetClip(double x1, double y1, double x2, double y2);
2487
2493 void SetPages(const char* page_desc);
2494
2503 void SetOverprint(enum PDFRasterizer::OverprintPreviewMode mode);
2504
2510 void SetCMYK(bool enable);
2511
2518 void SetDither(bool enable);
2519
2526 void SetGray(bool enable);
2527
2537 void SetMono(bool enable);
2538
2545 void SetAnnots(bool enable);
2546
2551 void SetSmooth(bool enable);
2552
2561 void SetPrintmode(bool enable);
2562
2574 void SetTransparentPage(bool enable);
2575
2576
2582 void SetPalettized(bool enable);
2583
2590 void SetDPI(double dpi);
2591
2603 void SetGamma(double gamma);
2604
2608 void SetHRes(int hres);
2609
2613 void SetVRes(int vres);
2614
2615
2616protected:
2617 TRN_Obj m_obj;
2618 friend class Convert;
2619 SDF::ObjSet m_objset;
2620};
2621
2626class Printer
2627{
2628public:
2643 static void Install(const UString & in_printerName = "PDFTron PDFNet");
2644
2652 static void Uninstall();
2653
2662 static const UString GetPrinterName();
2663
2672 static void SetPrinterName(const UString & in_printerName = "PDFTron PDFNet");
2673
2685 static bool IsInstalled(const UString & in_printerName = "PDFTron PDFNet");
2686
2687 enum Mode {
2691 e_auto,
2695 e_interop_only,
2699 e_printer_only,
2703 e_prefer_builtin_converter
2704 };
2705
2711 static void SetMode(Mode mode);
2712
2718 static Mode GetMode();
2719
2720
2721};
2722
2723#include <Impl/Convert.inl>
2724
2725 }; // namespace PDF
2726}; // namespace pdftron
2727
2728#endif // PDFTRON_H_CPPPDFConvert
TRN_UInt32 UInt32
Definition BasicTypes.h:13