- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HTML2PDF.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_CPPPDFHTML2PDF
6 #define PDFTRON_H_CPPPDFHTML2PDF
7
8 #include <PDF/PDFDoc.h>
9 #include <PDF/Print.h>
10 #include <C/PDF/TRN_HTML2PDF.h>
11
12 namespace pdftron {
13 namespace PDF {
14
15 class Proxy;
16 class WebPageSettings;
17 class TOCSettings;
18
64 class HTML2PDF
65 {
66 public:
67 typedef pdftron::PDF::Proxy Proxy;
68 typedef pdftron::PDF::WebPageSettings WebPageSettings;
69 typedef pdftron::PDF::TOCSettings TOCSettings;
70
71 #ifndef SWIG
72
90 static bool Convert(PDFDoc& doc, const UString& url);
91
112 static bool Convert(PDFDoc& doc, const UString& url, const WebPageSettings& settings);
113 #endif
114
120 void InsertFromURL(const UString& url);
121
129 void InsertFromURL(const UString& url, const WebPageSettings& settings);
130
136 void InsertFromHtmlString(const UString& html);
137
144 void InsertFromHtmlString(const UString& html, const WebPageSettings& settings);
145
150 void InsertTOC();
151
158 void InsertTOC(const TOCSettings& settings);
159
176 bool Convert(PDFDoc& doc);
177
186 int GetHTTPErrorCode() const;
187
195 void SetQuiet(bool quiet);
196
205 void SetCompatibilityMode(bool compatibility);
206
214 void SetSandbox(bool sandbox);
215
221 void SetLogFilePath(const UString& path);
222
228 UString GetLog() const;
229
237 static void SetModulePath(const UString& path);
238
239
245 static bool IsModuleAvailable();
246
250 HTML2PDF();
251
255 ~HTML2PDF();
256
262 void SetPaperSize(PrinterMode::PaperSize size);
263
272 void SetPaperSize(const UString& width, const UString& height);
273
280 void SetLandscape(bool enable);
281
290 void SetDPI(int dpi);
291
300 void SetOutline(bool enable, int depth = 4);
301
309 void DumpOutline(const UString& xml_file);
310
319 void SetPDFCompression(bool enable);
320
331 void SetMargins(const UString& top, const UString& bottom, const UString& left, const UString& right);
332
338 void SetHeader(const UString& header);
339
345 void SetFooter(const UString& footer);
346
353 void SetImageDPI(int dpi);
354
361 void SetImageQuality(int quality);
362
369 void SetCookieJar(const UString& path);
370
371 /* {{codegen: HTML2PDF}} */
372
379 void AddCookie(const UString& name, const UString& value);
380
387 void SetCustomHeader(const UString& name, const UString& value);
388 /* {{codegen: HTML2PDF}} */
389
393 void Destroy();
394
395 // @cond PRIVATE_DOC
396
397 #ifndef SWIGHIDDEN
398 TRN_HTML2PDF mp_html2pdf;
399 #endif
400
401 private:
402 HTML2PDF(const HTML2PDF&);
403 HTML2PDF& operator= (const HTML2PDF&);
404 // @endcond
405
406 };
407
408
414 class Proxy
415 {
416 public:
420 Proxy();
421
425 ~Proxy();
426
434 enum Type { e_default, e_none, e_http, e_socks5 };
435 void SetType(Type type);
436
442 void SetHost(const UString& host);
443
449 void SetPort(int port);
450
456 void SetUsername(const UString& username);
457
463 void SetPassword(const UString& password);
464
468 void Destroy();
469
470 // @cond PRIVATE_DOC
471
472 #ifndef SWIGHIDDEN
473 TRN_HTML2PDF_Proxy mp_impl;
474 #endif
475 // @endcond
476
477 };
478
482 class WebPageSettings
483 {
484 public:
488 WebPageSettings();
489
493 ~WebPageSettings();
494
500 void SetPrintBackground(bool background);
501
508 void SetLoadImages(bool load);
509
515 void SetAllowJavaScript(bool enable);
516
524 void SetSmartShrinking(bool enable);
525
532 void SetMinimumFontSize(int size);
533
548 void SetDefaultEncoding(const UString& encoding);
549
557 void SetUserStyleSheet(const UString& url);
558
566 void SetAllowPlugins(bool enable);
567
575 void SetPrintMediaType(bool print);
576
586 void SetIncludeInOutline(bool include);
587
593 void SetUsername(const UString& username);
594
600 void SetPassword(const UString& password);
601
609 void SetJavaScriptDelay(int msec);
610
618 void SetConvertDelay(int msec);
619
626 void SetTimeout(int msec);
627
633 void SetZoom(double zoom);
634
641 void SetBlockLocalFileAccess(bool block);
642
649 void SetStopSlowScripts(bool stop);
650
658 void SetDebugJavaScriptOutput(bool forward);
659
669 enum ErrorHandling {
670 e_abort, // Abort the conversion process.
671 e_skip, // Do not add the object to the final output
672 e_ignore // Try to add the object to the final output.
673 };
674 void SetLoadErrorHandling(ErrorHandling type);
675
684 void SetExternalLinks(bool convert);
685
693 void SetInternalLinks(bool convert);
694
702 void SetProduceForms(bool forms);
703
709 void SetProxy(const Proxy& proxy);
710
714 void Destroy();
715
716 // @cond PRIVATE_DOC
717
718 #ifndef SWIGHIDDEN
719 TRN_HTML2PDF_WebPageSettings mp_impl;
720 #endif
721 // @endcond
722
723 };
724
730 class TOCSettings
731 {
732 public:
736 TOCSettings();
737
741 ~TOCSettings();
742
749 void SetDottedLines(bool enable);
750
758 void SetLinks(bool enable);
759
766 void SetCaptionText(const UString& caption);
767
774 void SetLevelIndentation(int indentation);
775
782 void SetTextSizeShrink(double shrink);
783
792 void SetXsl(const UString& style_sheet);
793
797 void Destroy();
798
799 // @cond PRIVATE_DOC
800
801 #ifndef SWIGHIDDEN
802 TRN_HTML2PDF_TOCSettings mp_impl;
803 #endif
804 // @endcond
805
806 };
807
808 }; // namespace PDF
809 }; // namespace pdftron
810
811 #include <Impl/HTML2PDF.inl>
812
813 #endif // PDFTRON_H_CPPPDFHTML2PDF
pdftron::PDF::HTML2PDF::SetCookieJar
void SetCookieJar(const UString &path)
pdftron::PDF::WebPageSettings::SetPrintMediaType
void SetPrintMediaType(bool print)
pdftron::PDF::HTML2PDF::SetMargins
void SetMargins(const UString &top, const UString &bottom, const UString &left, const UString &right)
pdftron::PDF::HTML2PDF::GetHTTPErrorCode
int GetHTTPErrorCode() const
pdftron::PDF::HTML2PDF::InsertFromURL
void InsertFromURL(const UString &url)
pdftron::PDF::TOCSettings::SetLevelIndentation
void SetLevelIndentation(int indentation)
pdftron::PDF::HTML2PDF::SetImageQuality
void SetImageQuality(int quality)
pdftron::PDF::WebPageSettings::SetZoom
void SetZoom(double zoom)
pdftron::PDF::Proxy::Destroy
void Destroy()
pdftron::PDF::HTML2PDF::DumpOutline
void DumpOutline(const UString &xml_file)
pdftron::PDF::HTML2PDF::SetLogFilePath
void SetLogFilePath(const UString &path)
pdftron::PDF::TOCSettings::SetLinks
void SetLinks(bool enable)
pdftron::PDF::HTML2PDF::Destroy
void Destroy()
pdftron::PDF::WebPageSettings::~WebPageSettings
~WebPageSettings()
pdftron::PDF::HTML2PDF::SetFooter
void SetFooter(const UString &footer)
pdftron::PDF::HTML2PDF::SetPDFCompression
void SetPDFCompression(bool enable)
pdftron::PDF::WebPageSettings::e_skip
Definition: HTML2PDF.h:671
pdftron::PDF::TOCSettings::SetXsl
void SetXsl(const UString &style_sheet)
pdftron::PDF::WebPageSettings::SetIncludeInOutline
void SetIncludeInOutline(bool include)
pdftron::PDF::HTML2PDF::SetImageDPI
void SetImageDPI(int dpi)
pdftron::PDF::HTML2PDF
Definition: HTML2PDF.h:64
pdftron::PDF::Proxy::e_http
Definition: HTML2PDF.h:434
pdftron::PDF::HTML2PDF::WebPageSettings
pdftron::PDF::WebPageSettings WebPageSettings
Definition: HTML2PDF.h:68
pdftron::PDF::WebPageSettings::SetStopSlowScripts
void SetStopSlowScripts(bool stop)
pdftron::PDF::Proxy::e_none
Definition: HTML2PDF.h:434
pdftron::PDF::HTML2PDF::~HTML2PDF
~HTML2PDF()
pdftron::PDF::Proxy::SetType
void SetType(Type type)
pdftron::PDF::HTML2PDF::SetHeader
void SetHeader(const UString &header)
pdftron::PDF::TOCSettings::SetTextSizeShrink
void SetTextSizeShrink(double shrink)
pdftron::PDF::WebPageSettings::SetSmartShrinking
void SetSmartShrinking(bool enable)
pdftron::PDF::WebPageSettings::SetUserStyleSheet
void SetUserStyleSheet(const UString &url)
pdftron::PDF::TOCSettings::~TOCSettings
~TOCSettings()
pdftron::PDF::HTML2PDF::SetQuiet
void SetQuiet(bool quiet)
pdftron::PDF::PDFDoc
Definition: PDFDoc.h:71
pdftron::PDF::WebPageSettings::SetProxy
void SetProxy(const Proxy &proxy)
pdftron::PDF::WebPageSettings::SetPrintBackground
void SetPrintBackground(bool background)
pdftron::PDF::WebPageSettings::SetLoadImages
void SetLoadImages(bool load)
pdftron::PDF::HTML2PDF::IsModuleAvailable
static bool IsModuleAvailable()
pdftron::PDF::Proxy::Proxy
Proxy()
pdftron::PDF::Proxy::Type
Type
Definition: HTML2PDF.h:434
pdftron::PDF::HTML2PDF::InsertTOC
void InsertTOC()
pdftron::PDF::WebPageSettings::Destroy
void Destroy()
pdftron::PDF::HTML2PDF::SetSandbox
void SetSandbox(bool sandbox)
pdftron::PDF::WebPageSettings::SetPassword
void SetPassword(const UString &password)
pdftron::PDF::WebPageSettings::SetJavaScriptDelay
void SetJavaScriptDelay(int msec)
pdftron::PDF::HTML2PDF::SetCompatibilityMode
void SetCompatibilityMode(bool compatibility)
PDFDoc.h
pdftron::PDF::HTML2PDF::GetLog
UString GetLog() const
pdftron::PDF::HTML2PDF::SetCustomHeader
void SetCustomHeader(const UString &name, const UString &value)
pdftron::PDF::WebPageSettings::e_ignore
Definition: HTML2PDF.h:672
pdftron::PDF::TOCSettings::Destroy
void Destroy()
pdftron::PDF::WebPageSettings::SetTimeout
void SetTimeout(int msec)
Print.h
pdftron::PDF::HTML2PDF::HTML2PDF
HTML2PDF()
pdftron::PDF::WebPageSettings::SetBlockLocalFileAccess
void SetBlockLocalFileAccess(bool block)
pdftron::PDF::Proxy::SetUsername
void SetUsername(const UString &username)
pdftron::PDF::HTML2PDF::SetOutline
void SetOutline(bool enable, int depth=4)
pdftron::PDF::WebPageSettings::SetAllowJavaScript
void SetAllowJavaScript(bool enable)
pdftron::PDF::WebPageSettings::SetInternalLinks
void SetInternalLinks(bool convert)
pdftron::PDF::Proxy::~Proxy
~Proxy()
pdftron::PDF::HTML2PDF::SetPaperSize
void SetPaperSize(PrinterMode::PaperSize size)
pdftron::PDF::HTML2PDF::SetModulePath
static void SetModulePath(const UString &path)
pdftron::PDF::WebPageSettings::SetAllowPlugins
void SetAllowPlugins(bool enable)
pdftron::PDF::Proxy::e_default
Definition: HTML2PDF.h:434
pdftron::PDF::Proxy::SetPassword
void SetPassword(const UString &password)
pdftron::PDF::WebPageSettings::SetLoadErrorHandling
void SetLoadErrorHandling(ErrorHandling type)
pdftron::PDF::WebPageSettings
Definition: HTML2PDF.h:482
pdftron::PDF::WebPageSettings::SetConvertDelay
void SetConvertDelay(int msec)
pdftron::PDF::WebPageSettings::SetDefaultEncoding
void SetDefaultEncoding(const UString &encoding)
pdftron::PDF::TOCSettings::TOCSettings
TOCSettings()
pdftron::PDF::Proxy::SetHost
void SetHost(const UString &host)
pdftron::PDF::TOCSettings
Definition: HTML2PDF.h:730
pdftron::PDF::HTML2PDF::SetDPI
void SetDPI(int dpi)
pdftron::PDF::HTML2PDF::InsertFromHtmlString
void InsertFromHtmlString(const UString &html)
pdftron::PDF::HTML2PDF::Proxy
pdftron::PDF::Proxy Proxy
Definition: HTML2PDF.h:67
pdftron::PDF::TOCSettings::SetDottedLines
void SetDottedLines(bool enable)
pdftron::PDF::WebPageSettings::ErrorHandling
ErrorHandling
Definition: HTML2PDF.h:669
pdftron::PDF::PrinterMode::PaperSize
PaperSize
Definition: Print.h:106
pdftron::PDF::TOCSettings::SetCaptionText
void SetCaptionText(const UString &caption)
pdftron::PDF::Proxy::e_socks5
Definition: HTML2PDF.h:434
pdftron::PDF::HTML2PDF::TOCSettings
pdftron::PDF::TOCSettings TOCSettings
Definition: HTML2PDF.h:69
pdftron::PDF::WebPageSettings::SetUsername
void SetUsername(const UString &username)
pdftron::PDF::HTML2PDF::AddCookie
void AddCookie(const UString &name, const UString &value)
pdftron::PDF::HTML2PDF::SetLandscape
void SetLandscape(bool enable)
pdftron::PDF::HTML2PDF::Convert
static bool Convert(PDFDoc &doc, const UString &url)
pdftron::PDF::WebPageSettings::SetExternalLinks
void SetExternalLinks(bool convert)
pdftron::PDF::Proxy
Definition: HTML2PDF.h:414
pdftron::PDF::WebPageSettings::e_abort
Definition: HTML2PDF.h:670
pdftron::UString
Definition: UString.h:27
pdftron::PDF::WebPageSettings::SetDebugJavaScriptOutput
void SetDebugJavaScriptOutput(bool forward)
pdftron::PDF::Proxy::SetPort
void SetPort(int port)
pdftron::PDF::WebPageSettings::SetMinimumFontSize
void SetMinimumFontSize(int size)
pdftron::PDF::WebPageSettings::WebPageSettings
WebPageSettings()
pdftron::PDF::WebPageSettings::SetProduceForms
void SetProduceForms(bool forms)