Foxit PDF SDK
fs_pdfdoc.h
Go to the documentation of this file.
1 
15 #ifndef FS_PDFDOC_H_
16 #define FS_PDFDOC_H_
17 
18 #include "common/fs_common.h"
19 #include "common/file/fs_file.h"
20 #ifndef __EMSCRIPTEN_RENDER__
21 #include "pdf/fs_bookmark.h"
22 #include "pdf/fs_headerfooter.h"
23 #endif
24 #include "pdf/fs_pdfpage.h"
25 #ifndef __EMSCRIPTEN_RENDER__
26 #include "pdf/fs_readingbookmark.h"
27 #endif
29 
35 namespace foxit {
36 namespace fdf {
37 #ifndef __EMSCRIPTEN_RENDER__
38 class FDFDoc;
39 #endif
40 } // namespace fdf
41 namespace pdf {
42 // forward declaration
43 namespace actions {
44 class Action;
45 } // namespace actions
46 namespace interform {
47 class Form;
48 } // namespace interform;
49 class ReadingBookmark;
50 class SecurityHandler;
51 class StdEncryptData;
52 class CertificateEncryptData;
53 class DRMEncryptData;
54 class CustomEncryptData;
55 class RMSEncryptData;
56 class PagingSealSignature;
57 class WatermarkTextProperties;
59 class TiledWatermarkSettings FS_FINAL : public Object{
60  public:
66  typedef enum _Flags {
70  e_FlagAsAnnot = 0x0001,
72  e_FlagOnTop = 0x0002,
74  e_FlagNoPrint = 0x0004,
76  e_FlagInvisible = 0x0008
77  } Flags;
78 
94  explicit TiledWatermarkSettings(float row_space, float col_space, float rotation, int opacity ,int scale, uint32 flags)
98  , opacity(opacity)
99  , scale(scale)
100  , flags(flags){}
101 
110  : row_space(2.0)
111  , col_space(2.0)
112  , rotation(0)
113  , opacity(100)
114  , scale(100)
115  , flags(0){}
116 
123  : row_space(settings.row_space)
124  , col_space(settings.col_space)
125  , rotation(settings.rotation)
126  , opacity(settings.opacity)
127  , scale(settings.scale)
128  , flags(settings.flags){}
129 
138  row_space = settings.row_space;
139  col_space = settings.col_space;
140  rotation = settings.rotation;
141  opacity = settings.opacity;
142  scale = settings.scale;
143  flags = settings.flags;
144  return *this;
145  }
146 
164  void Set(float row_space, float col_space, float rotation, int opacity, int scale, uint32 flags) {
165  this->row_space = row_space;
166  this->col_space = col_space;
167  this->rotation = rotation;
168  this->opacity = opacity;
169  this->scale = scale;
170  this->flags = flags;
171  }
172 
174  float row_space;
175 
177  float col_space;
178 
180  float rotation;
181 
186  int opacity;
187 
192  int scale;
193 
202 };
203 
205 class WrapperData FS_FINAL : public Object {
206  public:
209  : version(0) {}
210 
220  WrapperData(int version, const wchar_t* type, const wchar_t* app_id, const wchar_t* uri, const wchar_t* description)
221  : version(version)
222  , type(type)
223  , app_id(app_id)
224  , uri(uri)
226 
232  WrapperData(const WrapperData& wrapper_data)
233  : version(wrapper_data.version)
234  , type(wrapper_data.type)
235  , app_id(wrapper_data.app_id)
236  , uri(wrapper_data.uri)
237  , description(wrapper_data.description) {}
238 
246  WrapperData& operator = (const WrapperData& wrapper_data) {
247  version = wrapper_data.version;
248  type = wrapper_data.type;
249  app_id = wrapper_data.app_id;
250  uri = wrapper_data.uri;
251  description = wrapper_data.description;
252  return *this;
253  }
254 
266  void Set(int version, const wchar_t* type, const wchar_t* app_id, const wchar_t* uri, const wchar_t* description) {
267  this->version = version;
268  this->type = type;
269  this->app_id = app_id;
270  this->uri = uri;
271  this->description = description;
272  }
273 
275  int version;
284 };
285 
287 class PayLoadData FS_FINAL {
288  public:
291  : version(0.0f)
292  , file_size (0){}
293 
303  PayLoadData(float version, const wchar_t* crypto_filter, const wchar_t* file_name,
305  const wchar_t* description)
306  : version(version)
311  {}
312 
318  PayLoadData(const PayLoadData& payload_data)
319  : version(payload_data.version)
320  , crypto_filter(payload_data.crypto_filter)
321  , file_name(payload_data.file_name)
322  , file_size(payload_data.file_size)
323  , description(payload_data.description)
324  {}
325 
333  PayLoadData& operator=(const PayLoadData& payload_data) {
334  version = payload_data.version;
335  crypto_filter = payload_data.crypto_filter;
336  description = payload_data.description;
337  file_name = payload_data.file_name;
338  file_size = payload_data.file_size;
339  return *this;
340  }
341 
351  void Set(float version, const wchar_t* crypto_filter, const wchar_t* file_name,
353  const wchar_t* description) {
354  this->version = version;
355  this->crypto_filter = crypto_filter;
356  this->file_name = file_name;
357  this->file_size = file_size;
358  this->description = description;
359  }
360 
362  float version;
371 };
372 
374 class HiddenInfoSettingData FS_FINAL: public Object{
375  public:
380  : enable_remove_metadata(true)
382  , enable_remove_bookmark(true)
384  , enable_remove_comment(true)
388  , enable_remove_content(true)
389  , enable_remove_link(true)
390  , enable_remove_overlaping(true) { }
391 
411  return *this;
412  }
413 
420 
427 
434 
441 
448 
455 
462 
469 
476 
483 
490 };
491 
496 class PageBasicInfo FS_FINAL : public Object {
497  public:
507  : width(width)
508  , height(height)
509  , rotation(rotation) {}
510 
513  : width(0)
514  , height(0)
515  , rotation(CommonDefines::e_RotationUnknown) {}
521  PageBasicInfo(const PageBasicInfo& page_info)
522  : width(page_info.width)
523  , height(page_info.height)
524  , rotation(page_info.rotation) {}
533  width = page_info.width;
534  height = page_info.height;
535  rotation = page_info.rotation;
536  return *this;
537  }
548  void Set(float width, float height, common::Rotation rotation) {
549  this->width = width;
550  this->height = height;
551  this->rotation = rotation;
552  }
553 
555  float width;
556 
558  float height;
564 };
565 
568 
569 
573 class EmbeddedFontData FS_FINAL : public Object {
574  public:
577 
584  : nonstandard_font_name_array(other.nonstandard_font_name_array)
585  , standard_font_name_array(other.standard_font_name_array) {}
586 
595  nonstandard_font_name_array = other.nonstandard_font_name_array;
596  standard_font_name_array = other.standard_font_name_array;
597  return *this;
598  }
599 
604 };
605 
607 class TableOfContentsConfig FS_FINAL : public Object{
608  public:
619  : title(title)
623 
626  : title(L"")
628  , is_show_serial_number(false)
629  , include_toc_pages(false){}
630 
639  this->title = other.title;
642  this->include_toc_pages = other.include_toc_pages;
643  return *this;
644  }
645 
653  bool operator == (const TableOfContentsConfig& other) const {
654  if (this->title == other.title && this->is_show_serial_number == other.is_show_serial_number && this->include_toc_pages == other.include_toc_pages) {
656  return false;
657  for (int i = 0; i < this->bookmark_level_array.GetSize(); i++) {
658  if (this->bookmark_level_array.GetAt(i) != other.bookmark_level_array.GetAt(i))
659  return false;
660  }
661  return true;
662  }
663  return false;
664  }
665 
673  bool operator != (const TableOfContentsConfig& other) const {
674  if (this->title != other.title || this->is_show_serial_number != other.is_show_serial_number || this->include_toc_pages != other.include_toc_pages)
675  return true;
677  return true;
678  for (int i = 0; i < this->bookmark_level_array.GetSize(); i++) {
679  if (this->bookmark_level_array.GetAt(i) != other.bookmark_level_array.GetAt(i))
680  return true;
681  }
682  return false;
683  }
684 
697  this->title = title;
698  this->bookmark_level_array = bookmark_level_array;
699  this->is_show_serial_number = is_show_serial_number;
700  this->include_toc_pages = include_toc_pages;
701  }
702 
705 
713 
721 };
722 
776 class PDFDoc FS_FINAL : public Base {
777  public:
783  typedef enum _PasswordType {
792  } PasswordType;
793 
799  typedef enum _EncryptType {
816  } EncryptType;
817 
823  typedef enum _UserPermissions {
829  e_PermPrint = 0x0004,
836  e_PermModify = 0x0008,
842  e_PermExtract = 0x0010,
848  e_PermAnnotForm = 0x0020,
854  e_PermFillForm = 0x0100,
867  e_PermAssemble = 0x0400,
874  } UserPermissions;
875 
880  typedef enum _SaveFlags {
929  } SaveFlags;
930 
936  typedef enum _ImportPageFlags {
947  } ImportPageFlags;
948 
954  typedef enum _ExtractPagesOptions {
975 
981  typedef enum _InsertDocOptions {
987 
993  typedef enum _DisplayMode {
1009  } DisplayMode;
1010 
1017  typedef enum _DataType {
1019  e_Forms = 0x0001,
1021  e_Annots = 0x0002,
1023  e_Links = 0x0004
1024  } DataType;
1025 
1031  typedef enum _WrapperType {
1038  } WrapperType;
1039 
1040 
1047  PDFDoc();
1048 
1057  explicit PDFDoc(const char* path);
1058 
1067  explicit PDFDoc(const wchar_t* path);
1068 
1079  explicit PDFDoc(const void* buffer, size_t size);
1080 
1095  explicit PDFDoc(common::file::ReaderCallback* file_read, bool is_async = false);
1096  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
1097  explicit PDFDoc(FS_HANDLE handle);
1099  ~PDFDoc();
1100 
1106  PDFDoc(const PDFDoc& other);
1107 
1115  PDFDoc& operator = (const PDFDoc& other);
1123  bool operator == (const PDFDoc& other) const;
1124 
1132  bool operator != (const PDFDoc& other) const;
1133 
1141  bool IsEmpty() const;
1142 
1148  uint64 GetFileSize();
1149 
1169  bool IsLinearized() const;
1170 
1179  bool IsTaggedPDF() const;
1180 
1202  ErrorCode Load(const String& password = "");
1203 
1226  ErrorCode LoadW(const WString& password = WString());
1227 
1259  common::Progressive StartLoad(const String& password = "", bool is_cache_stream = true,
1260  common::PauseCallback* pause = NULL);
1292  common::Progressive StartLoadW(const WString& password = WString(), bool is_cache_stream = true,
1293  common::PauseCallback* pause = NULL);
1294 
1304  int GetFirstAvailPageIndex() const;
1305 
1316  bool IsXFA() const;
1317 
1324  bool IsEncrypted() const;
1325 
1331  void ClearRenderCache();
1332 
1346  PasswordType GetPasswordType() const;
1347 
1355 
1370  PasswordType CheckPassword(const String& password);
1371 
1386  PasswordType CheckPassword(const foxit::WString& password);
1387 
1396  bool IsUserPassword(const String& password);
1397 
1406  bool IsUserPassword(const foxit::WString& password);
1407 
1416  bool IsOwnerPassword(const String& password);
1417 
1426  bool IsOwnerPassword(const foxit::WString& password);
1427 
1437  String GetUserPassword(const String& owner_password);
1438 #ifndef __EMSCRIPTEN_RENDER__
1439 
1447 
1456 
1465 
1474 
1487 #endif
1488 
1514  bool SaveAs(const char* file_path, uint32 save_flags = PDFDoc::e_SaveFlagNormal);
1515 
1542  bool SaveAs(const wchar_t* file_path, uint32 save_flags = PDFDoc::e_SaveFlagNormal);
1543 
1577  common::Progressive StartSaveAs(const char* file_path,
1578  uint32 save_flags = PDFDoc::e_SaveFlagNormal,
1579  common::PauseCallback* pause = NULL);
1580 
1614  common::Progressive StartSaveAs(const wchar_t* file_path,
1615  uint32 save_flags = PDFDoc::e_SaveFlagNormal,
1616  common::PauseCallback* pause = NULL);
1617 
1654 
1655 #ifndef __EMSCRIPTEN_RENDER__
1656 
1664 
1674 
1681  int GetBookmarkLevelDepth();
1682 
1690  bool RemoveBookmark(const Bookmark& bookmark);
1691 
1698  bool HasLayer() const;
1699 
1706  bool HasHeaderFooter();
1707 
1717 
1728  void AddHeaderFooter(const HeaderFooter& headerfooter);
1729 
1740  void UpdateHeaderFooter(const HeaderFooter& headerfooter);
1741 
1747  bool RemoveAllHeaderFooters();
1748 #endif
1749 
1754  int GetPageCount() const;
1755 
1769  PDFPage GetPage(int index);
1770 
1779  DisplayMode GetDisplayMode() const;
1780 
1791  void SetDisplayMode(DisplayMode display_mode);
1792 
1800 
1808 
1818 
1826 
1834 
1843 
1861 
1869  void DeleteIndirectObject(uint32 object_number);
1870 
1877  uint32 GetUserPermissions() const;
1878 
1885  bool IsWrapper() const;
1886 
1893  WrapperType GetWrapperType() const;
1894 
1901  WrapperData GetWrapperData() const;
1902 
1909  int64 GetWrapperOffset() const;
1910 
1918 
1936 
1962  bool SaveAsWrapperFile(const wchar_t* file_path, const WrapperData* wrapper_data = NULL,
1963  uint32 user_permissions = 0xFFFFFFFC, const char* owner_password = "");
1964 
1992  common::Progressive StartSaveAsPayloadFile(const wchar_t* file_path, const wchar_t* payload_file_path,
1993  const wchar_t* crypto_filter, const wchar_t* description, float version,
1994  uint32 save_flags = PDFDoc::e_SaveFlagNormal,
1995  common::PauseCallback* pause = NULL);
2007  bool HasForm() const;
2008 
2015 #ifndef __EMSCRIPTEN_RENDER__
2016 
2025 
2039  ReadingBookmark InsertReadingBookmark(int reading_bookmark_index, const WString& title, int dest_page_index);
2040 
2048  bool RemoveReadingBookmark(const ReadingBookmark& reading_bookmark);
2049 
2055  int GetSignatureCount();
2056 
2066 
2076  void RemoveSignature(const foxit::pdf::Signature& signature);
2077 #endif
2078 
2091  PDFPage InsertPage(int index, float width, float height);
2105 
2124  PDFPage AddPageFromTemplate(const wchar_t* template_name);
2125 
2141  bool HidePageTemplate(const wchar_t* template_name);
2142 
2151  bool RemovePage(int index);
2152 
2163  bool RemovePage(const foxit::pdf::PDFPage& page);
2164 
2186  bool MovePageTo(const PDFPage& page, int dest_index);
2187 
2213  bool MovePagesTo(const common::Range& page_range, int dest_index);
2214 
2268  const wchar_t* src_file_path, const String& password,
2269  uint32 flags = PDFDoc::e_ImportFlagNormal, const char* layer_name = "",
2270  const common::Range& page_range = common::Range(),
2271  common::PauseCallback* pause = NULL);
2324  const wchar_t* src_file_path, const WString& password,
2325  uint32 flags = PDFDoc::e_ImportFlagNormal, const char* layer_name = "",
2326  const common::Range& page_range = common::Range(),
2327  common::PauseCallback* pause = NULL);
2377  common::Progressive StartImportPages(int dest_index, const PDFDoc& src_doc,
2378  uint32 flags = PDFDoc::e_ImportFlagNormal, const char* layer_name = "",
2379  const common::Range& page_range = common::Range(),
2380  common::PauseCallback* pause = NULL);
2381 
2404  common::Progressive StartExtractPages(const char* file_path, uint32 options, const common::Range& page_range = common::Range(),
2405  common::PauseCallback* pause = NULL);
2406 
2429  common::Progressive StartExtractPages(const wchar_t* file_path, uint32 options, const common::Range& page_range = common::Range(),
2430  common::PauseCallback* pause = NULL);
2431 
2457 
2474  void InsertDocument(int dest_index, const PDFDoc& src_doc, uint32 options);
2475 
2493  void InsertDocument(int dest_index, const PDFDoc& src_doc, uint32 options, const wchar_t* bookmark_title);
2494 
2504  void Sanitize();
2505 
2517  void RemoveHiddenInfo(const HiddenInfoSettingData& hidden_data_setting);
2518 
2519 #ifndef __EMSCRIPTEN_RENDER__
2520 
2543  bool ImportFromFDF(const fdf::FDFDoc& fdf_doc, int types = pdf::PDFDoc::e_Forms | pdf::PDFDoc::e_Annots, const common::Range& page_range = common::Range());
2544 
2564  bool ExportToFDF(const fdf::FDFDoc& fdf_doc, int types = pdf::PDFDoc::e_Forms | pdf::PDFDoc::e_Annots, const common::Range& page_range = common::Range());
2565 
2574  bool ExportAnnotToFDF(const annots::Annot& pdf_annot,const fdf::FDFDoc& fdf_doc);
2575 
2588  bool ExportFormFieldsToFDF(const pdf::interform::FieldArray& field_array, bool is_include, const fdf::FDFDoc& fdf_doc);
2589 #endif
2590 
2596  String GetHeader() const;
2597 
2603  int GetFileVersion();
2604 
2620  void SetFileVersion(int version);
2621 
2634  bool SetSecurityHandler(const SecurityHandler& handler);
2635 
2646 
2656  bool RemoveSecurity();
2657 
2665  int GetFontCount();
2666 
2675  common::Font GetFont(int index);
2676 
2683 
2695  bool SetOpenAction(actions::Action& action);
2696 
2702  bool RemoveOpenAction();
2703 
2709  bool DoJSOpenAction();
2710 
2716  bool IsPortfolio();
2717 
2732  PageBasicInfo GetPageBasicInfo(int index);
2733 
2747 
2756 #ifdef _SUPPORTWEBSDK_
2757  objects::PDFStream* CreateIcon(String imgStream,int width, int height);
2758 #endif
2759 
2766  void CreateDSS();
2767 
2783  void AddTableOfContents(const wchar_t* title, Int32Array bookmark_level_array);
2784 
2794  void AddTableOfContents(const TableOfContentsConfig& table_of_contents_config);
2795 
2812  void SetCacheFile(foxit::common::file::StreamCallback* file_stream, bool is_own_file_stream);
2813 
2830 
2847  common::Progressive StartRecognizeForm(bool is_set_tool_tips, common::PauseCallback* pause = NULL);
2848 
2857  WString GetPageText(int page_index) const;
2858 
2879  PagingSealSignature AddPagingSealSignature(const common::Range& page_range, float width, float height, bool to_check_permission = true);
2880 
2929  common::Progressive StartAddTiledWatermark(const wchar_t* text, const TiledWatermarkSettings& settings, const WatermarkTextProperties& properties, const common::Range& page_range, common::PauseCallback* pause = NULL);
2957  common::Progressive StartAddTiledWatermark(const wchar_t* src_img_file_path, const TiledWatermarkSettings& settings, const common::Range& page_range, common::PauseCallback* pause = NULL);
2958 
3015 
3023  annots::AnnotArray GetAnnotsByIdArray(const WStringArray& unique_id_arr);
3024 
3030  void RemoveStructTree();
3031 
3032 };
3033 } // namespace pdf
3034 } // namespace foxit
3035 #endif // FS_PDFDOC_H_
3036 
bool include_toc_pages
true means to include catalog page(s) in the calculation of pages number in the table of contents,...
Definition: fs_pdfdoc.h:720
PageBasicInfo GetPageBasicInfo(int index)
Get the basic information of a page specified by index.
ImportPageFlags
Enumeration for flags used for importing pages.
Definition: fs_pdfdoc.h:936
TiledWatermarkSettings(const TiledWatermarkSettings &settings)
Constructor, with another tiled watermark settings object.
Definition: fs_pdfdoc.h:122
bool enable_remove_form_fields
A boolean value indicating whether to remove interactive form fields.
Definition: fs_pdfdoc.h:454
common::Progressive StartRecognizeForm(common::PauseCallback *pause=0)
Start to recognize form in current PDF document.
bool SaveAsWrapperFile(const wchar_t *file_path, const WrapperData *wrapper_data=0, uint32 user_permissions=0xFFFFFFFC, const char *owner_password="")
Save current PDF document as a wrapper file.
Bookmark GetRootBookmark()
Get bookmark root node.
Operate text annotations and fill in interactive form fields. (Bit 6 in permission value)
Definition: fs_pdfdoc.h:848
Flags
Enumeration for tiled watermark setting flags.
Definition: fs_pdfdoc.h:66
Definition: fs_pdfobject.h:448
int version
Wrapper version.
Definition: fs_pdfdoc.h:275
If set, form fields are to imported from or exported to FDF/XFDF document.
Definition: fs_pdfdoc.h:1019
~PDFDoc()
Destructor.
int GetReadingBookmarkCount()
Get the count of reading bookmarks.
bool RemoveBookmark(const Bookmark &bookmark)
Remove a specified bookmark.
WStringArray standard_font_name_array
Font name array of embedded fonts which are standard fonts and can be replaced by system fonts if the...
Definition: fs_pdfdoc.h:603
void Set(float version, const wchar_t *crypto_filter, const wchar_t *file_name, int64 file_size, const wchar_t *description)
Set value.
Definition: fs_pdfdoc.h:351
If set, annotations (except link annotations) are to imported from or exported to FDF/XFDF document.
Definition: fs_pdfdoc.h:1021
Bookmark CreateRootBookmark()
Create new bookmark root node.
bool SetSecurityHandler(const SecurityHandler &handler)
Set a PDF security handler for encryption, such as standard encryption(password), certificate encrypt...
common::Progressive StartSaveAs(const char *file_path, uint32 save_flags=PDFDoc::e_SaveFlagNormal, common::PauseCallback *pause=0)
Start to save current PDF document as another PDF file.
bool operator==(const PDFDoc &other) const
Equal operator.
TiledWatermarkSettings()
Constructor and set the default value.
Definition: fs_pdfdoc.h:109
Definition: fs_common.h:1368
File writing interface.
Definition: fx_stream.h:470
int GetFirstAvailPageIndex() const
Get the page index of the fist available page.
void ClearRenderCache()
Clear the cache used during rendering, to reduce the memory usage.
bool HasForm() const
Check whether current PDF document has interactive form (also known as AcroForm).
bool enable_remove_fileattachment
A boolean value indicating whether to remove embedded file attachments.
Definition: fs_pdfdoc.h:426
StdEncryptData GetStdEncryptData() const
Get encrypt data of standard encryption (known as password encryption).
TableOfContentsConfig(const wchar_t *title, Int32Array bookmark_level_array, bool is_show_serial_number, bool include_toc_pages)
Constructor, with parameter.
Definition: fs_pdfdoc.h:618
If set, do not display a watermark.
Definition: fs_pdfdoc.h:76
bool enable_remove_link
A boolean value indicating whether to remove hyperlink annotations.
Definition: fs_pdfdoc.h:482
ErrorCode Load(const String &password="")
Load current document content by using a specified password.
Definition: fs_pdfdoc.h:59
bool is_show_serial_number
true means to show the serial number in the table of contents, while false means not to show the seri...
Definition: fs_pdfdoc.h:715
RMSEncryptData GetRMSEncryptData() const
Get encrypt data of RMS encryption.
common::Progressive StartSaveAsPayloadFile(const wchar_t *file_path, const wchar_t *payload_file_path, const wchar_t *crypto_filter, const wchar_t *description, float version, uint32 save_flags=PDFDoc::e_SaveFlagNormal, common::PauseCallback *pause=0)
Start to save current PDF document as a wrapper document with a payload document (defined in PDF 2....
CFX_Object Object
Object type.
Definition: fs_basictypes.h:220
Save document normally, without using any special flag.
Definition: fs_pdfdoc.h:886
Extract PDF contents. (Bit 5 in permission value)
Definition: fs_pdfdoc.h:842
Definition: fs_annot.h:1666
bool HidePageTemplate(const wchar_t *template_name)
Hide a named page.
float version
The version number of the cryptographic filter used to encrypt the encrypted payload referenced by th...
Definition: fs_pdfdoc.h:362
Assemble PDF document. (Bit 11 in permission value)
Definition: fs_pdfdoc.h:867
bool enable_remove_metadata
A boolean value indicating whether to remove document metadata.
Definition: fs_pdfdoc.h:419
Unknown rotation.
Definition: fs_common.h:67
Encryption type: password, which is the standard encryption.
Definition: fs_pdfdoc.h:805
Header file for header-footer related definitions and classes.
bool operator==(const TableOfContentsConfig &other) const
Equal operator.
Definition: fs_pdfdoc.h:653
bool ExportAnnotToFDF(const annots::Annot &pdf_annot, const fdf::FDFDoc &fdf_doc)
Export specified annotation to a FDF/XFDF document.
PayLoadData(const PayLoadData &payload_data)
Constructor, with another payload data object.
Definition: fs_pdfdoc.h:318
objects::PDFDictionary * GetTrailer() const
Get the trailer dictionary.
WrapperType
Enumeration for wrapper type.
Definition: fs_pdfdoc.h:1031
If set, the watermark will be a part of page content when inserted to a PDF page.
Definition: fs_pdfdoc.h:68
Modify PDF contents. (Bit 4 in permission value)
Definition: fs_pdfdoc.h:836
PagingSealSignature AddPagingSealSignature(const common::Range &page_range, float width, float height, bool to_check_permission=true)
Add a paging seal signature to document by page range.
SecurityHandler GetSecurityHandler()
Get current PDF security handler of current document.
Int32Array bookmark_level_array
A bookmark level array which is used to specify bookmarks to be used to generate "Table of Contents"....
Definition: fs_pdfdoc.h:712
float row_space
The row spacing for multiple lines of tiled watermark. Its unit is inch and it can't be a negative nu...
Definition: fs_pdfdoc.h:174
bool enable_remove_hidden_text
A boolean value indicating whether to remove hidden text.
Definition: fs_pdfdoc.h:461
Definition: fs_basictypes.h:227
bool SetOpenAction(actions::Action &action)
Set the action to be performed when the document is opened.
Definition: fs_pdfdoc.h:573
TiledWatermarkSettings(float row_space, float col_space, float rotation, int opacity, int scale, uint32 flags)
Constructor, with parameters.
Definition: fs_pdfdoc.h:94
A user password is used in PDF document.
Definition: fs_pdfdoc.h:789
WString description
Description for payload file to show applications or confront users prompt information.
Definition: fs_pdfdoc.h:370
Save document without updating metadata "ModDate" and "CreationDate".
Definition: fs_pdfdoc.h:928
bool ImportFromFDF(const fdf::FDFDoc &fdf_doc, int types=pdf::PDFDoc::e_Forms|pdf::PDFDoc::e_Annots, const common::Range &page_range=common::Range())
Import form fields and annotations from a FDF/XFDF document.
annots::AnnotArray GetAnnotsByIdArray(const WStringArray &unique_id_arr)
Get annotations by the unique ID array.
PageBasicInfo()
Constructor.
Definition: fs_pdfdoc.h:512
common::Progressive StartLoad(const String &password="", bool is_cache_stream=true, common::PauseCallback *pause=0)
Start to loading current document content by using a specified password.
int64 GetWrapperOffset() const
Get wrapper offset if current document's wrapper type is PDFDoc::e_WrapperFoxit.
common::Progressive StartImportPages(int dest_index, const PDFDoc &src_doc, uint32 flags=PDFDoc::e_ImportFlagNormal, const char *layer_name="", const common::Range &page_range=common::Range(), common::PauseCallback *pause=0)
Start to import pages from another PDF document (via PDF document object).
bool MovePagesTo(const common::Range &page_range, int dest_index)
Move one or more pages (specified by index) to a new position.
int GetSize() const
Get the number of elements in the array.
Definition: fx_basic.h:1360
WString crypto_filter
The name of the cryptographic filter used to encrypt the encrypted payload document.
Definition: fs_pdfdoc.h:364
Header file for file operation related definitions and functions.
bool operator !=(const TableOfContentsConfig &other) const
Not equal operator.
Definition: fs_pdfdoc.h:673
File reading interface.
Definition: fx_stream.h:587
void UpdateHeaderFooter(const HeaderFooter &headerfooter)
Update header-footer.
Import pages with layers.
Definition: fs_pdfdoc.h:940
If set, that means structure tree will be extracted as well.
Definition: fs_pdfdoc.h:958
objects::PDFDictionary * GetCatalog() const
Get the catalog dictionary.
Encryption type: customized encryption.
Definition: fs_pdfdoc.h:811
WIDE STRING CLASS.
Definition: fx_string.h:1461
bool IsLinearized() const
Check if current PDF document is a linearized file.
WString description
Description for wrapper file to show applications or confront users prompt information.
Definition: fs_pdfdoc.h:283
Save document without original data or unchanged objects.
Definition: fs_pdfdoc.h:902
Save document incrementally.
Definition: fs_pdfdoc.h:894
bool IsWrapper() const
Check whether current document is a wrapper file or not.
CFX_WideString WString
Wide string.
Definition: fs_basictypes.h:222
void SetFileVersion(int version)
Set the PDF file version which will be stored in PDF header section of the saved PDF file.
bool ExportFormFieldsToFDF(const pdf::interform::FieldArray &field_array, bool is_include, const fdf::FDFDoc &fdf_doc)
Export specified form fields to a FDF/XFDF document.
int GetFileVersion()
Get PDF file version stored in PDF header section.
float height
Page height (unit is 1/72 inch).
Definition: fs_pdfdoc.h:558
No password is used in PDF document.
Definition: fs_pdfdoc.h:787
PasswordType CheckPassword(const String &password)
Check the type of a specified password.
PasswordType GetPasswordType() const
Get the type of current used password.
FX_UINT64 uint64
Unsigned 64-bit integer.
Definition: fs_basictypes.h:191
uint32 GetUserPermissions() const
Get user access permissions.
HeaderFooter GetEditableHeaderFooter()
Get the editable header footer object.
If set, that means attachment files will be extracted as well.
Definition: fs_pdfdoc.h:969
Print PDF document with higher qualities. (Bit 12 in permission value)
Definition: fs_pdfdoc.h:873
Definition: fs_pdfdoc.h:287
Definition: fs_pdfdoc.h:776
Configuration settings for removing hidden or sensitive data from a PDF document.
Definition: fs_pdfdoc.h:374
Normal document.
Definition: fs_pdfdoc.h:1033
Definition: fs_security.h:646
PayLoadData & operator=(const PayLoadData &payload_data)
Assign operator.
Definition: fs_pdfdoc.h:333
ReadingBookmark InsertReadingBookmark(int reading_bookmark_index, const WString &title, int dest_page_index)
Insert a reading bookmark to current PDF document.
int GetBookmarkLevelDepth()
Get bookmark level depth.
bool IsEmpty() const
Check whether current object is empty or not.
bool RemoveAllHeaderFooters()
Remove all header-footers.
int64 file_size
The payload file size.
Definition: fs_pdfdoc.h:368
(Reserved, not supported yet) If set, only link annotations are to imported from or exported to XFDF ...
Definition: fs_pdfdoc.h:1023
bool ExportToFDF(const fdf::FDFDoc &fdf_doc, int types=pdf::PDFDoc::e_Forms|pdf::PDFDoc::e_Annots, const common::Range &page_range=common::Range())
Export form fields and annotations to a FDF/XFDF document.
bool IsOwnerPassword(const String &password)
Check if input password is the owner password of current PDF document.
Definition: fs_watermark.h:333
An owner password is used in PDF document.
Definition: fs_pdfdoc.h:791
If set, show watermark above other page content.
Definition: fs_pdfdoc.h:72
ExtractPagesOptions
Enumeration for options used for extracting pages.
Definition: fs_pdfdoc.h:954
Header file for bookmark related definitions and classes.
PDFDoc()
Constructor.
Definition: fs_fdfdoc.h:51
objects::PDFDictionary * GetPagesDict() const
Get the dictionary of "Pages".
Definition: fs_security.h:1027
EmbeddedFontData(const EmbeddedFontData &other)
Constructor, with another embedded font data object.
Definition: fs_pdfdoc.h:583
Definition: fs_security.h:137
Import pages without cloning stream objects into memory.
Definition: fs_pdfdoc.h:946
Definition: fs_pdfdoc.h:567
common::Progressive StartGetPayloadFile(foxit::common::file::WriterCallback *payload_file, common::PauseCallback *pause=0)
Start to get payload file.
void RemoveStructTree()
Remove structure tree from current PDF document.
Header file for reading bookmark related definitions and classes.
bool DoJSOpenAction()
Perform JavaScript actions when the document is opened.
If set, that means OCProperties will be extracted as well.
Definition: fs_pdfdoc.h:962
int GetSignatureCount()
Get the count of signature.
uint64 GetFileSize()
Get file size.
WStringArray nonstandard_font_name_array
Font name array of embedded fonts which cannot be replaced by system fonts if they are to be unembede...
Definition: fs_pdfdoc.h:601
Definition: fs_signature.h:2091
Definition: fs_pdfdoc.h:496
SaveFlags
Enumeration for PDF document saving flags.
Definition: fs_pdfdoc.h:880
ErrorCode LoadW(const WString &password=WString())
Load current document content by using a specified password.
ErrorCode
Enumeration for error code.
Definition: fs_basictypes.h:236
PageBasicInfo(float width, float height, common::Rotation rotation)
Constructor, with parameters.
Definition: fs_pdfdoc.h:506
WString type
Wrapper type to indicate a type of the current wrapper file.
Definition: fs_pdfdoc.h:277
int scale
The image or page scale in percents. Valid range: from 1 to 100. 100 means the image or page is displ...
Definition: fs_pdfdoc.h:192
EmbeddedFontData & operator=(const EmbeddedFontData &other)
Assign operator.
Definition: fs_pdfdoc.h:594
EmbeddedFontData()
Constructor.
Definition: fs_pdfdoc.h:576
void Sanitize()
Removes all hidden or potentially sensitive information from the current PDF document using default s...
int GetFontCount()
Count all the PDF fonts used in current PDF document.
common::Progressive StartAddTiledWatermark(const wchar_t *text, const TiledWatermarkSettings &settings, const WatermarkTextProperties &properties, const common::Range &page_range, common::PauseCallback *pause=0)
Add text type tiled watermark to PDF pages.
Import pages normally.
Definition: fs_pdfdoc.h:938
Definition: fs_pdfdoc.h:205
File stream interface, reading & writing.
Definition: fx_stream.h:692
bool RemoveOpenAction()
Remove the action to be performed when the document is opened.
When document is opened, neither document outlines nor thumbnail images are visible.
Definition: fs_pdfdoc.h:995
DisplayMode
Enumeration for display mode which specifies how the document should be displayed when opened.
Definition: fs_pdfdoc.h:993
bool IsUserPassword(const String &password)
Check if input password is the user password of current PDF document.
float width
Page width (unit is 1/72 inch).
Definition: fs_pdfdoc.h:555
TiledWatermarkSettings & operator=(const TiledWatermarkSettings &settings)
Assign operator.
Definition: fs_pdfdoc.h:137
void Set(const wchar_t *title, Int32Array bookmark_level_array, bool is_show_serial_number, bool include_toc_pages)
Set value.
Definition: fs_pdfdoc.h:696
EncryptType GetEncryptionType() const
Get the encryption type.
bool HasLayer() const
Check whether current PDF document has layer (known as "Optional content group" in <PDF reference 1....
objects::PDFDictionary * GetEncryptDict() const
Get the encrypt dictionary.
common::Progressive StartEmbedAllFonts(common::PauseCallback *pause=0)
Start to convert all un-embeded fonts to embeded fonts.
WString GetPageText(int page_index) const
Get the specified PDF page text which the text is in display order.
Size
Enumeration for page size type.
Definition: fs_pdfpage.h:490
WString file_name
The payload file name.
Definition: fs_pdfdoc.h:366
Definition: fx_basic.h:3758
If set, that means signature will be extracted as well. It must be combined with PDFDoc:e_ExtractPage...
Definition: fs_pdfdoc.h:973
objects::PDFDictionary * GetInfo() const
Get the information dictionary.
bool IsXFA() const
Check whether current PDF document is an XFA document.
If set, do not print a watermark.
Definition: fs_pdfdoc.h:74
float rotation
Rotation angle in degrees.
Definition: fs_pdfdoc.h:180
When document is opened, full-screen mode, with no menu bar, window controls, or any other windows ar...
Definition: fs_pdfdoc.h:1004
Print PDF document with normal mode. (Bit 3 in permission value)
Definition: fs_pdfdoc.h:829
PageBasicInfoArray GetAllPageBasicInfo()
Get the basic information of all page.
(Reserved, currently, this value is not used.) Encryption type: Foxit connected PDF DRM encryption.
Definition: fs_pdfdoc.h:815
Save document as a linearized file.
Definition: fs_pdfdoc.h:914
When document is opened, document outlines (bookmarks) are visible.
Definition: fs_pdfdoc.h:997
bool IsPortfolio()
Check whether current PDF document is a portfolio file or not.
PasswordType
Enumeration for the type of current used password in a PDF document.
Definition: fs_pdfdoc.h:783
When document is opened, optional content group panels are visible.
Definition: fs_pdfdoc.h:1006
Definition: fs_common.h:373
PDFPage AddPageFromTemplate(const wchar_t *template_name)
Adds a new PDF page to document, from a named template.
FX_INT64 int64
Signed 64-bit integer.
Definition: fs_basictypes.h:189
const TYPE GetAt(int nIndex) const
This method retrieves an element specified by an index number.
Definition: fx_basic.h:1396
CustomEncryptData GetCustomEncryptData() const
Get encrypt data of custom encryption.
If set, that means annotations related to extracted pages will be extracted as well.
Definition: fs_pdfdoc.h:956
InsertDocOptions
Enumeration for options used for inserting a PDF document to another.
Definition: fs_pdfdoc.h:981
Disabilities support. (Bit 10 in permission value)
Definition: fs_pdfdoc.h:860
DataType
Enumeration for data type used to decide which object(s) will be imported from or exported to FDF/XFD...
Definition: fs_pdfdoc.h:1017
FX_UINT32 uint32
32-bit unsigned integer.
Definition: fs_basictypes.h:195
void SetDisplayMode(DisplayMode display_mode)
Set the display mode.
Save document with removing redundant PDF objects.
Definition: fs_pdfdoc.h:921
Definition: fs_pdfpage.h:412
bool RemoveReadingBookmark(const ReadingBookmark &reading_bookmark)
Remove a reading bookmark from current PDF document.
Encryption type: digital certificate encryption.
Definition: fs_pdfdoc.h:807
void * FS_HANDLE
Handle type.
Definition: fs_basictypes.h:213
WrapperType GetWrapperType() const
Get Wrapper type.
EmbeddedFontData GetEmbeddedFontData()
Get embedded font data.
If set, that means bookmark will be inserted to target document as well.
Definition: fs_pdfdoc.h:985
Header file for common definitions and classes.
When document is opened, attachment panels are visible.
Definition: fs_pdfdoc.h:1008
HiddenInfoSettingData & operator=(const HiddenInfoSettingData &data)
Assign operator.
Definition: fs_pdfdoc.h:399
ReadingBookmark GetReadingBookmark(int index)
Get a reading bookmark by index.
No encryption pattern.
Definition: fs_pdfdoc.h:803
void Set(int version, const wchar_t *type, const wchar_t *app_id, const wchar_t *uri, const wchar_t *description)
Set value.
Definition: fs_pdfdoc.h:266
The password is invalid.
Definition: fs_pdfdoc.h:785
PDFDoc & operator=(const PDFDoc &other)
Assign operator.
If set, that means bookmark will be extracted as well.
Definition: fs_pdfdoc.h:971
void DeleteIndirectObject(uint32 object_number)
Delete an indirect object by indirect object number.
bool enable_remove_searchIndex
A boolean value indicating whether to remove the search index.
Definition: fs_pdfdoc.h:440
Definition: fs_security.h:890
bool operator !=(const PDFDoc &other) const
Not equal operator.
objects::PDFObject * GetIndirectObject(uint32 object_number)
Get an indirect object by indirect object number.
WString uri
The URI for consumers to get more information.
Definition: fs_pdfdoc.h:281
float col_space
The column spacing for multiple lines of tiled watermark. Its unit is inch and it can't be a negative...
Definition: fs_pdfdoc.h:177
Header file for PDF object related definitions and classes.
Encryption type: Microsoft RMS encryption.
Definition: fs_pdfdoc.h:813
Definition: fs_basictypes.h:451
If set, that means attachments will be inserted to target document as well.
Definition: fs_pdfdoc.h:983
DisplayMode GetDisplayMode() const
Get the display mode.
String GetHeader() const
Get PDF header identifying the version of the PDF specification to which the file conforms.
common::Font GetFont(int index)
Get a font by index.
Fill PDF form. (Bit 9 in permission value)
Definition: fs_pdfdoc.h:854
int GetPageCount() const
Get the count of pages.
bool enable_remove_comment
A boolean value indicating whether to remove comments and annotations.
Definition: fs_pdfdoc.h:447
bool enable_remove_overlaping
A boolean value indicating whether to remove overlapping objects.
Definition: fs_pdfdoc.h:489
void RemoveHiddenInfo(const HiddenInfoSettingData &hidden_data_setting)
Removes specified types of hidden information from the current PDF document based on user-defined set...
Header file for PDF page related definitions and classes.
PDFPage GetPage(int index)
Get a PDF page by index.
bool RemoveSecurity()
Remove the security handler from current document, so that the later saved document will be unencrypt...
CertificateEncryptData GetCertificateEncryptData() const
Get encrypt data of certificate encryption.
WrapperData(int version, const wchar_t *type, const wchar_t *app_id, const wchar_t *uri, const wchar_t *description)
Constructor, with parameters.
Definition: fs_pdfdoc.h:220
Definition: fs_annot.h:1006
PDFPage InsertPage(int index, float width, float height)
Insert a new blank PDF page to document, by index.
Save document by using XRef stream.
Definition: fs_pdfdoc.h:907
Definition: fs_security.h:56
Definition: fs_common.h:1523
Definition: fs_pdfobject.h:850
bool IsEncrypted() const
Check whether current document is an encrypted file or not.
void Set(float row_space, float col_space, float rotation, int opacity, int scale, uint32 flags)
Set value.
Definition: fs_pdfdoc.h:164
String GetUserPassword(const String &owner_password)
Get the user password based on owner password.
If set, that means to use PDFDoc::e_SaveFlagXRefStream saving flag for the result file in order to re...
Definition: fs_pdfdoc.h:967
actions::Action GetOpenAction()
Get the action to be performed when the document is opened.
PayLoadData(float version, const wchar_t *crypto_filter, const wchar_t *file_name, foxit::int64 file_size, const wchar_t *description)
Constructor, with parameters.
Definition: fs_pdfdoc.h:303
bool SaveAs(const char *file_path, uint32 save_flags=PDFDoc::e_SaveFlagNormal)
Save current PDF document as another PDF file.
Rotation
Enumeration for rotation.
Definition: fs_common.h:57
Foxit namespace.
Definition: fs_taggedpdf.h:27
Definition: fs_pdfobject.h:55
WrapperData & operator=(const WrapperData &wrapper_data)
Assign operator.
Definition: fs_pdfdoc.h:246
DRMEncryptData GetDRMEncryptData() const
Get encrypt data of Foxit DRM encryption.
Definition: fs_action.h:418
bool enable_remove_bookmark
A boolean value indicating whether to remove bookmarks.
Definition: fs_pdfdoc.h:433
WString app_id
Application identity to indicate applications to open this wrapper data.
Definition: fs_pdfdoc.h:279
common::Progressive StartLoadW(const WString &password=WString(), bool is_cache_stream=true, common::PauseCallback *pause=0)
Start to loading current document content by using a specified password.
If set, that means Javascript will be extracted as well.
Definition: fs_pdfdoc.h:960
If set, the watermark will be an annotation when inserted to a PDF page, and the watermark will be sh...
Definition: fs_pdfdoc.h:70
BYTE STRING CLASS.
Definition: fx_string.h:317
Unknown encryption type.
Definition: fs_pdfdoc.h:801
EncryptType
Enumeration for encryption type.
Definition: fs_pdfdoc.h:799
int opacity
Opacity in percents. Valid range: from 0 to 100. 0 for fully transparent and 100 for fully opaque.
Definition: fs_pdfdoc.h:186
void CreateDSS()
Create DSS information in current PDF document.
common::Progressive StartExtractPages(const char *file_path, uint32 options, const common::Range &page_range=common::Range(), common::PauseCallback *pause=0)
Start to extract pages from current PDF document.
bool IsTaggedPDF() const
Check if current PDF document is a Tagged PDF file.
PDF 2.0 wrapper document.
Definition: fs_pdfdoc.h:1037
bool enable_remove_content
A boolean value indicating whether to remove invisible or obscured content.
Definition: fs_pdfdoc.h:475
Definition: fs_pdfform.h:44
common::Rotation rotation
Page rotation. Please refer to values starting from common::e_Rotation0 and this should be one of the...
Definition: fs_pdfdoc.h:563
uint32 flags
Watermark flags.
Definition: fs_pdfdoc.h:201
TableOfContentsConfig & operator=(const TableOfContentsConfig &other)
Assign operator.
Definition: fs_pdfdoc.h:638
When document is opened, thumbnail images are visible.
Definition: fs_pdfdoc.h:999
bool enable_remove_hidden_layer
A boolean value indicating whether to remove hidden layers (Optional Content Groups).
Definition: fs_pdfdoc.h:468
HiddenInfoSettingData()
Constructs a HiddenDataSetting object with all removal options enabled by default.
Definition: fs_pdfdoc.h:379
void InsertDocument(int dest_index, const PDFDoc &src_doc, uint32 options)
Insert another PDF document to the specified location of current PDF document.
TableOfContentsConfig()
Constructor.
Definition: fs_pdfdoc.h:625
#define NULL
The null-pointer value.
Definition: fx_system.h:792
Definition: fs_signature.h:99
Page size: letter.
Definition: fs_pdfpage.h:492
void RemoveSignature(const foxit::pdf::Signature &signature)
Remove a signature.
WString title
Title for the table of contents. If this is an empty string, the default value "Table of Contents" wi...
Definition: fs_pdfdoc.h:704
PayLoadData()
Constructor.
Definition: fs_pdfdoc.h:290
Encryption type: Foxit DRM encryption.
Definition: fs_pdfdoc.h:809
common::Progressive StartImportPagesFromFilePath(int dest_index, const wchar_t *src_file_path, const String &password, uint32 flags=PDFDoc::e_ImportFlagNormal, const char *layer_name="", const common::Range &page_range=common::Range(), common::PauseCallback *pause=0)
Start to import pages from another PDF document (via file path).
WrapperData GetWrapperData() const
Get wrapper data if current document's wrapper type is PDFDoc::e_WrapperFoxit.
PageBasicInfo & operator=(const PageBasicInfo &page_info)
Assign operator.
Definition: fs_pdfdoc.h:532
PageBasicInfo(const PageBasicInfo &page_info)
Constructor, with another page basic information object.
Definition: fs_pdfdoc.h:521
void AddHeaderFooter(const HeaderFooter &headerfooter)
Add new header-footer.
foxit::pdf::Signature GetSignature(int index)
Get a signature by index.
Definition: fs_security.h:365
void AddTableOfContents(const wchar_t *title, Int32Array bookmark_level_array)
Insert page(s) as the table of contents to the front of current PDF document.
Definition: fs_pdfdoc.h:607
bool RemovePage(int index)
Remove a PDF page by page index.
void SetCacheFile(foxit::common::file::StreamCallback *file_stream, bool is_own_file_stream)
Set cache file (represented by a file stream) to current PDF document.
WrapperData()
Constructor.
Definition: fs_pdfdoc.h:208
Definition: fs_bookmark.h:58
bool HasHeaderFooter()
Check whether current document has header-footer.
void Set(float width, float height, common::Rotation rotation)
Set value.
Definition: fs_pdfdoc.h:548
Definition: fs_readingbookmark.h:43
UserPermissions
Enumeration for user access permissions in a PDF document.
Definition: fs_pdfdoc.h:823
WrapperData(const WrapperData &wrapper_data)
Constructor, with another wrapper data object.
Definition: fs_pdfdoc.h:232
Foxit wrapper document.
Definition: fs_pdfdoc.h:1035
PayLoadData GetPayLoadData()
Get payload data if current document's wrapper type is PDFDoc::e_WrapperPDFV2.
uint32 AddIndirectObject(objects::PDFObject *pdf_object)
Add a PDF object to current PDF document, to be an indirect object.
bool MovePageTo(const PDFPage &page, int dest_index)
Move a specified page to a new position.