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;
176  float col_space;
178  float rotation;
183  int opacity;
188  int scale;
189 
198 
199 };
201 class WrapperData FS_FINAL : public Object {
202  public:
205  : version(0) {}
206 
216  WrapperData(int version, const wchar_t* type, const wchar_t* app_id, const wchar_t* uri, const wchar_t* description)
217  : version(version)
218  , type(type)
219  , app_id(app_id)
220  , uri(uri)
222 
228  WrapperData(const WrapperData& wrapper_data)
229  : version(wrapper_data.version)
230  , type(wrapper_data.type)
231  , app_id(wrapper_data.app_id)
232  , uri(wrapper_data.uri)
233  , description(wrapper_data.description) {}
234 
242  WrapperData& operator = (const WrapperData& wrapper_data) {
243  version = wrapper_data.version;
244  type = wrapper_data.type;
245  app_id = wrapper_data.app_id;
246  uri = wrapper_data.uri;
247  description = wrapper_data.description;
248  return *this;
249  }
250 
262  void Set(int version, const wchar_t* type, const wchar_t* app_id, const wchar_t* uri, const wchar_t* description) {
263  this->version = version;
264  this->type = type;
265  this->app_id = app_id;
266  this->uri = uri;
267  this->description = description;
268  }
269 
271  int version;
280 };
281 
283 class PayLoadData FS_FINAL {
284  public:
287  : version(0.0f)
288  , file_size (0){}
289 
299  PayLoadData(float version, const wchar_t* crypto_filter, const wchar_t* file_name,
301  const wchar_t* description)
302  : version(version)
307  {}
308 
314  PayLoadData(const PayLoadData& payload_data)
315  : version(payload_data.version)
316  , crypto_filter(payload_data.crypto_filter)
317  , file_name(payload_data.file_name)
318  , file_size(payload_data.file_size)
319  , description(payload_data.description)
320  {}
321 
329  PayLoadData& operator=(const PayLoadData& payload_data) {
330  version = payload_data.version;
331  crypto_filter = payload_data.crypto_filter;
332  description = payload_data.description;
333  file_name = payload_data.file_name;
334  file_size = payload_data.file_size;
335  return *this;
336  }
337 
347  void Set(float version, const wchar_t* crypto_filter, const wchar_t* file_name,
349  const wchar_t* description) {
350  this->version = version;
351  this->crypto_filter = crypto_filter;
352  this->file_name = file_name;
353  this->file_size = file_size;
354  this->description = description;
355  }
356 
358  float version;
367 };
368 
373 class PageBasicInfo FS_FINAL : public Object {
374  public:
384  : width(width)
385  , height(height)
386  , rotation(rotation) {}
387 
390  : width(0)
391  , height(0)
392  , rotation(CommonDefines::e_RotationUnknown) {}
398  PageBasicInfo(const PageBasicInfo& page_info)
399  : width(page_info.width)
400  , height(page_info.height)
401  , rotation(page_info.rotation) {}
410  width = page_info.width;
411  height = page_info.height;
412  rotation = page_info.rotation;
413  return *this;
414  }
425  void Set(float width, float height, common::Rotation rotation) {
426  this->width = width;
427  this->height = height;
428  this->rotation = rotation;
429  }
430 
432  float width;
433 
435  float height;
441 };
442 
447 class EmbeddedFontData FS_FINAL : public Object {
448  public:
451 
460 
471  return *this;
472  }
473 
478 };
479 
481 class TableOfContentsConfig FS_FINAL : public Object{
482  public:
493  : title(title)
497 
500  : title(L"")
502  , is_show_serial_number(false)
503  , include_toc_pages(false){}
504 
513  this->title = other.title;
516  this->include_toc_pages = other.include_toc_pages;
517  return *this;
518  }
519 
527  bool operator == (const TableOfContentsConfig& other) const {
528  if (this->title == other.title && this->is_show_serial_number == other.is_show_serial_number && this->include_toc_pages == other.include_toc_pages) {
530  return false;
531  for (int i = 0; i < this->bookmark_level_array.GetSize(); i++) {
532  if (this->bookmark_level_array.GetAt(i) != other.bookmark_level_array.GetAt(i))
533  return false;
534  }
535  return true;
536  }
537  return false;
538  }
539 
547  bool operator != (const TableOfContentsConfig& other) const {
548  if (this->title != other.title || this->is_show_serial_number != other.is_show_serial_number || this->include_toc_pages != other.include_toc_pages)
549  return true;
551  return true;
552  for (int i = 0; i < this->bookmark_level_array.GetSize(); i++) {
553  if (this->bookmark_level_array.GetAt(i) != other.bookmark_level_array.GetAt(i))
554  return true;
555  }
556  return false;
557  }
558 
571  this->title = title;
572  this->bookmark_level_array = bookmark_level_array;
573  this->is_show_serial_number = is_show_serial_number;
574  this->include_toc_pages = include_toc_pages;
575  }
576 
593 };
594 
648 class PDFDoc FS_FINAL : public Base {
649  public:
655  typedef enum _PasswordType {
664  } PasswordType;
665 
671  typedef enum _EncryptType {
688  } EncryptType;
689 
695  typedef enum _UserPermissions {
701  e_PermPrint = 0x0004,
708  e_PermModify = 0x0008,
714  e_PermExtract = 0x0010,
720  e_PermAnnotForm = 0x0020,
726  e_PermFillForm = 0x0100,
739  e_PermAssemble = 0x0400,
746  } UserPermissions;
747 
752  typedef enum _SaveFlags {
800  } SaveFlags;
801 
807  typedef enum _ImportPageFlags {
818  } ImportPageFlags;
819 
825  typedef enum _ExtractPagesOptions {
842 
848  typedef enum _InsertDocOptions {
852 
858  typedef enum _DisplayMode {
874  } DisplayMode;
875 
882  typedef enum _DataType {
884  e_Forms = 0x0001,
886  e_Annots = 0x0002,
888  e_Links = 0x0004
889  } DataType;
890 
896  typedef enum _WrapperType {
903  } WrapperType;
904 
905 
912  PDFDoc();
913 
922  explicit PDFDoc(const char* path);
923 
932  explicit PDFDoc(const wchar_t* path);
933 
944  explicit PDFDoc(const void* buffer, size_t size);
945 
960  explicit PDFDoc(common::file::ReaderCallback* file_read, bool is_async = false);
961  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
962  explicit PDFDoc(FS_HANDLE handle);
964  ~PDFDoc();
965 
971  PDFDoc(const PDFDoc& other);
972 
980  PDFDoc& operator = (const PDFDoc& other);
988  bool operator == (const PDFDoc& other) const;
989 
997  bool operator != (const PDFDoc& other) const;
998 
1006  bool IsEmpty() const;
1007 
1013  uint64 GetFileSize();
1014 
1034  bool IsLinearized() const;
1035 
1042  bool IsTaggedPDF() const;
1043 
1065  ErrorCode Load(const String& password = "");
1066 
1089  ErrorCode LoadW(const WString& password = WString());
1090 
1122  common::Progressive StartLoad(const String& password = "", bool is_cache_stream = true,
1123  common::PauseCallback* pause = NULL);
1155  common::Progressive StartLoadW(const WString& password = WString(), bool is_cache_stream = true,
1156  common::PauseCallback* pause = NULL);
1157 
1167  int GetFirstAvailPageIndex() const;
1168 
1179  bool IsXFA() const;
1180 
1187  bool IsEncrypted() const;
1188 
1194  void ClearRenderCache();
1195 
1209  PasswordType GetPasswordType() const;
1210 
1218 
1233  PasswordType CheckPassword(const String& password);
1234 
1249  PasswordType CheckPassword(const foxit::WString& password);
1250 
1259  bool IsUserPassword(const String& password);
1260 
1269  bool IsUserPassword(const foxit::WString& password);
1270 
1279  bool IsOwnerPassword(const String& password);
1280 
1289  bool IsOwnerPassword(const foxit::WString& password);
1290 
1300  String GetUserPassword(const String& owner_password);
1301 #ifndef __EMSCRIPTEN_RENDER__
1302 
1310 
1319 
1328 
1337 
1350 #endif
1351 
1377  bool SaveAs(const char* file_path, uint32 save_flags = PDFDoc::e_SaveFlagNormal);
1378 
1405  bool SaveAs(const wchar_t* file_path, uint32 save_flags = PDFDoc::e_SaveFlagNormal);
1406 
1440  common::Progressive StartSaveAs(const char* file_path,
1441  uint32 save_flags = PDFDoc::e_SaveFlagNormal,
1442  common::PauseCallback* pause = NULL);
1443 
1477  common::Progressive StartSaveAs(const wchar_t* file_path,
1478  uint32 save_flags = PDFDoc::e_SaveFlagNormal,
1479  common::PauseCallback* pause = NULL);
1480 
1517 #ifndef __EMSCRIPTEN_RENDER__
1518 
1526 
1536 
1543  int GetBookmarkLevelDepth();
1544 
1552  bool RemoveBookmark(const Bookmark& bookmark);
1553 
1560  bool HasLayer() const;
1561 
1568  bool HasHeaderFooter();
1569 
1579 
1590  void AddHeaderFooter(const HeaderFooter& headerfooter);
1591 
1602  void UpdateHeaderFooter(const HeaderFooter& headerfooter);
1603 
1609  bool RemoveAllHeaderFooters();
1610 #endif
1611 
1616  int GetPageCount() const;
1617 
1631  PDFPage GetPage(int index);
1632 
1641  DisplayMode GetDisplayMode() const;
1642 
1653  void SetDisplayMode(DisplayMode display_mode);
1654 
1662 
1670 
1680 
1688 
1696 
1705 
1723 
1731  void DeleteIndirectObject(uint32 object_number);
1732 
1739  uint32 GetUserPermissions() const;
1740 
1747  bool IsWrapper() const;
1748 
1755  WrapperType GetWrapperType() const;
1756 
1763  WrapperData GetWrapperData() const;
1764 
1771  int64 GetWrapperOffset() const;
1772 
1780 
1798 
1824  bool SaveAsWrapperFile(const wchar_t* file_path, const WrapperData* wrapper_data = NULL,
1825  uint32 user_permissions = 0xFFFFFFFC, const char* owner_password = "");
1826 
1854  common::Progressive StartSaveAsPayloadFile(const wchar_t* file_path, const wchar_t* payload_file_path,
1855  const wchar_t* crypto_filter, const wchar_t* description, float version,
1856  uint32 save_flags = PDFDoc::e_SaveFlagNormal,
1857  common::PauseCallback* pause = NULL);
1869  bool HasForm() const;
1870 
1877 #ifndef __EMSCRIPTEN_RENDER__
1878 
1887 
1901  ReadingBookmark InsertReadingBookmark(int reading_bookmark_index, const WString& title, int dest_page_index);
1902 
1910  bool RemoveReadingBookmark(const ReadingBookmark& reading_bookmark);
1911 
1917  int GetSignatureCount();
1918 
1928 
1938  void RemoveSignature(const foxit::pdf::Signature& signature);
1939 #endif
1940 
1953  PDFPage InsertPage(int index, float width, float height);
1967 
1986  PDFPage AddPageFromTemplate(const wchar_t* template_name);
1987 
2003  bool HidePageTemplate(const wchar_t* template_name);
2004 
2013  bool RemovePage(int index);
2014 
2025  bool RemovePage(const foxit::pdf::PDFPage& page);
2026 
2042  bool MovePageTo(const PDFPage& page, int dest_index);
2043 
2064  bool MovePagesTo(const common::Range& page_range, int dest_index);
2065 
2119  const wchar_t* src_file_path, const String& password,
2120  uint32 flags = PDFDoc::e_ImportFlagNormal, const char* layer_name = "",
2121  const common::Range& page_range = common::Range(),
2122  common::PauseCallback* pause = NULL);
2175  const wchar_t* src_file_path, const WString& password,
2176  uint32 flags = PDFDoc::e_ImportFlagNormal, const char* layer_name = "",
2177  const common::Range& page_range = common::Range(),
2178  common::PauseCallback* pause = NULL);
2228  common::Progressive StartImportPages(int dest_index, const PDFDoc& src_doc,
2229  uint32 flags = PDFDoc::e_ImportFlagNormal, const char* layer_name = "",
2230  const common::Range& page_range = common::Range(),
2231  common::PauseCallback* pause = NULL);
2232 
2255  common::Progressive StartExtractPages(const char* file_path, uint32 options, const common::Range& page_range = common::Range(),
2256  common::PauseCallback* pause = NULL);
2257 
2280  common::Progressive StartExtractPages(const wchar_t* file_path, uint32 options, const common::Range& page_range = common::Range(),
2281  common::PauseCallback* pause = NULL);
2282 
2308 
2325  void InsertDocument(int dest_index, const PDFDoc& src_doc, uint32 options);
2326 
2327 #ifndef __EMSCRIPTEN_RENDER__
2328 
2351  bool ImportFromFDF(const fdf::FDFDoc& fdf_doc, int types = pdf::PDFDoc::e_Forms | pdf::PDFDoc::e_Annots, const common::Range& page_range = common::Range());
2352 
2372  bool ExportToFDF(const fdf::FDFDoc& fdf_doc, int types = pdf::PDFDoc::e_Forms | pdf::PDFDoc::e_Annots, const common::Range& page_range = common::Range());
2373 
2382  bool ExportAnnotToFDF(const annots::Annot& pdf_annot,const fdf::FDFDoc& fdf_doc);
2383 
2396  bool ExportFormFieldsToFDF(const pdf::interform::FieldArray& field_array, bool is_include, const fdf::FDFDoc& fdf_doc);
2397 #endif
2398 
2403  String GetHeader() const;
2404 
2410  int GetFileVersion();
2411 
2427  void SetFileVersion(int version);
2428 
2441  bool SetSecurityHandler(const SecurityHandler& handler);
2442 
2453 
2463  bool RemoveSecurity();
2464 
2472  int GetFontCount();
2473 
2482  common::Font GetFont(int index);
2483 
2490 
2502  bool SetOpenAction(actions::Action& action);
2503 
2509  bool RemoveOpenAction();
2510 
2516  bool DoJSOpenAction();
2517 
2523  bool IsPortfolio();
2524 
2539  PageBasicInfo GetPageBasicInfo(int index);
2540 
2547 
2548 #ifdef _SUPPORTWEBSDK_
2549  objects::PDFStream* CreateIcon(String imgStream,int width, int height);
2550 #endif
2551 
2558  void CreateDSS();
2559 
2575  void AddTableOfContents(const wchar_t* title, Int32Array bookmark_level_array);
2576 
2586  void AddTableOfContents(const TableOfContentsConfig& table_of_contents_config);
2587 
2604  void SetCacheFile(foxit::common::file::StreamCallback* file_stream, bool is_own_file_stream);
2605 
2622 
2631  WString GetPageText(int page_index) const;
2632 
2648  PagingSealSignature AddPagingSealSignature(const common::Range& page_range, float width, float height);
2649 
2698  common::Progressive StartAddTiledWatermark(const wchar_t* text, const TiledWatermarkSettings& settings, const WatermarkTextProperties& properties, const common::Range& page_range, common::PauseCallback* pause = NULL);
2726  common::Progressive StartAddTiledWatermark(const wchar_t* src_img_file_path, const TiledWatermarkSettings& settings, const common::Range& page_range, common::PauseCallback* pause = NULL);
2727 
2784 
2792  annots::AnnotArray GetAnnotsByIdArray(const WStringArray& unique_id_arr);
2793 
2794 };
2795 } // namespace pdf
2796 } // namespace foxit
2797 #endif // FS_PDFDOC_H_
2798 
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:592
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:807
TiledWatermarkSettings(const TiledWatermarkSettings &settings)
Constructor, with another tiled watermark settings object.
Definition: fs_pdfdoc.h:122
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:720
Flags
Enumeration for tiled watermark setting flags.
Definition: fs_pdfdoc.h:66
Definition: fs_pdfobject.h:422
int version
Wrapper version.
Definition: fs_pdfdoc.h:271
If set, form fields are to imported from or exported to FDF/XFDF document.
Definition: fs_pdfdoc.h:884
~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:477
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:347
If set, annotations (except link annotations) are to imported from or exported to FDF/XFDF document.
Definition: fs_pdfdoc.h:886
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:1273
File writing interface.
Definition: fx_stream.h:453
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).
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:492
If set, do not display a watermark.
Definition: fs_pdfdoc.h:76
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:587
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:221
Save document normally, without using any special flag.
Definition: fs_pdfdoc.h:757
Extract PDF contents. (Bit 5 in permission value)
Definition: fs_pdfdoc.h:714
Definition: fs_annot.h:1654
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:358
Assemble PDF document. (Bit 11 in permission value)
Definition: fs_pdfdoc.h:739
Unknown rotation.
Definition: fs_common.h:67
Encryption type: password, which is the standard encryption.
Definition: fs_pdfdoc.h:677
Header file for header-footer related definitions and classes.
bool operator==(const TableOfContentsConfig &other) const
Equal operator.
Definition: fs_pdfdoc.h:527
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:314
objects::PDFDictionary * GetTrailer() const
Get the trailer dictionary.
WrapperType
Enumeration for wrapper type.
Definition: fs_pdfdoc.h:896
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:708
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:585
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
Definition: fs_basictypes.h:228
bool SetOpenAction(actions::Action &action)
Set the action to be performed when the document is opened.
Definition: fs_pdfdoc.h:447
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:661
WString description
Description for payload file to show applications or confront users prompt information.
Definition: fs_pdfdoc.h:366
Save document without updating metadata "ModDate" and "CreationDate".
Definition: fs_pdfdoc.h:799
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:389
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 index 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:360
Header file for file operation related definitions and functions.
bool operator !=(const TableOfContentsConfig &other) const
Not equal operator.
Definition: fs_pdfdoc.h:547
File reading interface.
Definition: fx_stream.h:570
void UpdateHeaderFooter(const HeaderFooter &headerfooter)
Update header-footer.
Import pages with layers.
Definition: fs_pdfdoc.h:811
If set, that means structure tree will be extracted as well.
Definition: fs_pdfdoc.h:829
objects::PDFDictionary * GetCatalog() const
Get the catalog dictionary.
Encryption type: customized encryption.
Definition: fs_pdfdoc.h:683
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:279
Save document without original data or unchanged objects.
Definition: fs_pdfdoc.h:773
Save document incrementally.
Definition: fs_pdfdoc.h:765
bool IsWrapper() const
Check whether current document is a wrapper file or not.
CFX_WideString WString
Wide string.
Definition: fs_basictypes.h:223
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:435
No password is used in PDF document.
Definition: fs_pdfdoc.h:659
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:192
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:840
Print PDF document with higher qualities. (Bit 12 in permission value)
Definition: fs_pdfdoc.h:745
Definition: fs_pdfdoc.h:283
Definition: fs_pdfdoc.h:648
Normal document.
Definition: fs_pdfdoc.h:898
Definition: fs_security.h:580
PayLoadData & operator=(const PayLoadData &payload_data)
Assign operator.
Definition: fs_pdfdoc.h:329
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:364
(Reserved, not supported yet) If set, only link annotations are to imported from or exported to XFDF ...
Definition: fs_pdfdoc.h:888
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:663
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:825
Header file for bookmark related definitions and classes.
PDFDoc()
Constructor.
Definition: fs_fdfdoc.h:51
objects::PDFDictionary * GetPagesDict() const
Get the dictionary of "Pages".
PagingSealSignature AddPagingSealSignature(const common::Range &page_range, float width, float height)
Add a paging seal signature to document by page range.
Definition: fs_security.h:961
EmbeddedFontData(const EmbeddedFontData &other)
Constructor, with another embedded font data object.
Definition: fs_pdfdoc.h:457
Definition: fs_security.h:137
Import pages without cloning stream objects into memory.
Definition: fs_pdfdoc.h:817
common::Progressive StartGetPayloadFile(foxit::common::file::WriterCallback *payload_file, common::PauseCallback *pause=0)
Start to get payload file.
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:833
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:475
Definition: fs_signature.h:2091
Definition: fs_pdfdoc.h:373
SaveFlags
Enumeration for PDF document saving flags.
Definition: fs_pdfdoc.h:752
ErrorCode LoadW(const WString &password=WString())
Load current document content by using a specified password.
ErrorCode
Enumeration for error code.
Definition: fs_basictypes.h:237
PageBasicInfo(float width, float height, common::Rotation rotation)
Constructor, with parameters.
Definition: fs_pdfdoc.h:383
WString type
Wrapper type to indicate a type of the current wrapper file.
Definition: fs_pdfdoc.h:273
int scale
The image or page scale in percents. Valid range: from 0 to 100. 0 means not displayed,...
Definition: fs_pdfdoc.h:188
EmbeddedFontData & operator=(const EmbeddedFontData &other)
Assign operator.
Definition: fs_pdfdoc.h:468
EmbeddedFontData()
Constructor.
Definition: fs_pdfdoc.h:450
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:809
Definition: fs_pdfdoc.h:201
File stream interface, reading & writing.
Definition: fx_stream.h:675
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:860
DisplayMode
Enumeration for display mode which specifies how the document should be displayed when opened.
Definition: fs_pdfdoc.h:858
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:432
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:570
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:362
Definition: fx_basic.h:3758
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:178
When document is opened, full-screen mode, with no menu bar, window controls, or any other windows ar...
Definition: fs_pdfdoc.h:869
Print PDF document with normal mode. (Bit 3 in permission value)
Definition: fs_pdfdoc.h:701
(Reserved, currently, this value is not used.) Encryption type: Foxit connected PDF DRM encryption.
Definition: fs_pdfdoc.h:687
Save document as a linearized file.
Definition: fs_pdfdoc.h:785
When document is opened, document outlines (bookmarks) are visible.
Definition: fs_pdfdoc.h:862
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:655
When document is opened, optional content group panels are visible.
Definition: fs_pdfdoc.h:871
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:190
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:827
InsertDocOptions
Enumeration for options used for inserting a PDF document to another.
Definition: fs_pdfdoc.h:848
Disabilities support. (Bit 10 in permission value)
Definition: fs_pdfdoc.h:732
DataType
Enumeration for data type used to decide which object(s) will be imported from or exported to FDF/XFD...
Definition: fs_pdfdoc.h:882
FX_UINT32 uint32
32-bit unsigned integer.
Definition: fs_basictypes.h:196
void SetDisplayMode(DisplayMode display_mode)
Set the display mode.
Save document with removing redundant PDF objects.
Definition: fs_pdfdoc.h:792
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:679
void * FS_HANDLE
Handle type.
Definition: fs_basictypes.h:214
WrapperType GetWrapperType() const
Get Wrapper type.
EmbeddedFontData GetEmbeddedFontData()
Get embedded font data.
Header file for common definitions and classes.
When document is opened, attachment panels are visible.
Definition: fs_pdfdoc.h:873
ReadingBookmark GetReadingBookmark(int index)
Get a reading bookmark by index.
No encryption pattern.
Definition: fs_pdfdoc.h:675
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:262
The password is invalid.
Definition: fs_pdfdoc.h:657
PDFDoc & operator=(const PDFDoc &other)
Assign operator.
void DeleteIndirectObject(uint32 object_number)
Delete an indirect object by indirect object number.
Definition: fs_security.h:824
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:277
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:176
Header file for PDF object related definitions and classes.
Encryption type: Microsoft RMS encryption.
Definition: fs_pdfdoc.h:685
Definition: fs_basictypes.h:443
If set, that means attachments will be inserted to target document as well.
Definition: fs_pdfdoc.h:850
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:726
int GetPageCount() const
Get the count of pages.
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:216
Definition: fs_annot.h:994
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:778
Definition: fs_security.h:56
Definition: fs_common.h:1428
Definition: fs_pdfobject.h:809
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:838
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:299
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_pdf3d.h:27
Definition: fs_pdfobject.h:55
WrapperData & operator=(const WrapperData &wrapper_data)
Assign operator.
Definition: fs_pdfdoc.h:242
DRMEncryptData GetDRMEncryptData() const
Get encrypt data of Foxit DRM encryption.
Definition: fs_action.h:418
WString app_id
Application identity to indicate applications to open this wrapper data.
Definition: fs_pdfdoc.h:275
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:831
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:673
EncryptType
Enumeration for encryption type.
Definition: fs_pdfdoc.h:671
int opacity
Opacity in percents. Valid range: from 0 to 100. 0 for fully transparent and 100 for fully opaque.
Definition: fs_pdfdoc.h:183
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:902
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:440
uint32 flags
Watermark flags.
Definition: fs_pdfdoc.h:197
TableOfContentsConfig & operator=(const TableOfContentsConfig &other)
Assign operator.
Definition: fs_pdfdoc.h:512
When document is opened, thumbnail images are visible.
Definition: fs_pdfdoc.h:864
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:499
#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:578
PayLoadData()
Constructor.
Definition: fs_pdfdoc.h:286
Encryption type: Foxit DRM encryption.
Definition: fs_pdfdoc.h:681
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:409
PageBasicInfo(const PageBasicInfo &page_info)
Constructor, with another page basic information object.
Definition: fs_pdfdoc.h:398
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:481
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:204
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:425
Definition: fs_readingbookmark.h:43
UserPermissions
Enumeration for user access permissions in a PDF document.
Definition: fs_pdfdoc.h:695
WrapperData(const WrapperData &wrapper_data)
Constructor, with another wrapper data object.
Definition: fs_pdfdoc.h:228
Foxit wrapper document.
Definition: fs_pdfdoc.h:900
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 index position.