Foxit PDF SDK
fs_splitpdfdoc.h
Go to the documentation of this file.
1 
15 #ifndef FS_SPLITPDFDOC_H_
16 #define FS_SPLITPDFDOC_H_
17 
18 #include "common/fs_common.h"
19 #include "pdf/fs_pdfdoc.h"
20 
21 namespace foxit {
22 namespace pdf {
24 class SplitOutputSettingData FS_FINAL : public Object{
25  public:
28  : output_folder_path(L""),
30  custom_name(L""),
31  separator(L""),
32  is_overwrite(false) {}
33 
59  const wchar_t* custom_name, const wchar_t* separator, bool is_overwrite) {
60  this->output_folder_path = output_folder_path;
61  this->add_before_or_after_orginal_name = add_before_or_after_orginal_name;
62  this->custom_name = custom_name;
63  this->separator = separator;
64  this->is_overwrite = is_overwrite;
65  }
66 
77  this->custom_name = data.custom_name;
78  this->separator = data.separator;
79  this->is_overwrite = data.is_overwrite;
80  return (*this);
81  }
82 
110  const wchar_t* custom_name, const wchar_t* separator, bool is_overwrite) {
111  this->output_folder_path = output_folder_path;
112  this->add_before_or_after_orginal_name = add_before_or_after_orginal_name;
113  this->custom_name = custom_name;
114  this->separator = separator;
115  this->is_overwrite = is_overwrite;
116  }
117 
129 
141 
153 
165 
174 };
175 
177 class SplitDocumentInfo FS_FINAL : public Base{
178  public:
188  SplitDocumentInfo(const wchar_t* file_path, const wchar_t* password);
189 
202  SplitDocumentInfo(common::file::ReaderCallback* file_reader, const wchar_t* password, const wchar_t* file_name);
203 
217  SplitDocumentInfo(const PDFDoc& doc, const wchar_t* file_name);
218 
219  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
220  explicit SplitDocumentInfo(FS_HANDLE handle);
221 
224 
230  SplitDocumentInfo(const SplitDocumentInfo& other);
231 
240 
248  bool operator==(const SplitDocumentInfo& other) const;
249 
257  bool operator!=(const SplitDocumentInfo& other) const;
258 
266  bool IsEmpty() const;
267 };
268 
271 
272 
273 class SplitFileResult FS_FINAL : public Object{
274  public:
280  typedef enum _SplitFileState {
282  e_SplitFileSuccess = 0,
289  e_SplitFileErrSizeTooSmall = 1,
296  e_SplitFileErrFileExist = 2,
303  e_SplitFileErrAccessDeny = 3
304  } SplitFileState;
305 
306 
309 
319  SplitFileResult(const wchar_t* before_splitting_file_name, WStringArray after_split_files_paths, SplitFileState split_file_state) {
320  this->before_splitting_file_name = before_splitting_file_name;
321  this->after_split_files_paths = after_split_files_paths;
322  this->split_file_state = split_file_state;
323  }
324 
332  SplitFileResult &operator = (const SplitFileResult& data) {
333  this->before_splitting_file_name = data.before_splitting_file_name;
334  this->after_split_files_paths = data.after_split_files_paths;
335  this->split_file_state = data.split_file_state;
336  return (*this);
337  }
338 
344 
350 
356 };
357 
360 
361 
366  public:
372  virtual bool NeedToPause() = 0;
373 
384  virtual void ProgressNotify(const wchar_t* before_splitting_file_name, const wchar_t* after_split_file_path, int split_page_count, int total_page_count) = 0;
385 
394  virtual void ResultNotify(const SplitFileResultArray& result_array) = 0;
395 };
396 
401 class SplitPDFDoc FS_FINAL : public Base{
402  public:
427  static common::Progressive StartSplitByFileSize(float max_file_size, const SplitOutputSettingData& setting_data, const SplitDocumentInfoArray& split_doc_array, SplitPDFDocCallback* split_callback = NULL);
428 
429 };
430 } // namespace pdf
431 } // namespace foxit
432 
433 #endif
Definition: fs_splitpdfdoc.h:177
static common::Progressive StartSplitByFileSize(float max_file_size, const SplitOutputSettingData &setting_data, const SplitDocumentInfoArray &split_doc_array, SplitPDFDocCallback *split_callback=0)
Start to split the PDF document into multiple PDF documents.
SplitOutputSettingData & operator=(const SplitOutputSettingData &data)
Assign operator.
Definition: fs_splitpdfdoc.h:74
CFX_Object Object
Object type.
Definition: fs_basictypes.h:221
SplitFileResult(const wchar_t *before_splitting_file_name, WStringArray after_split_files_paths, SplitFileState split_file_state)
Constructor, with parameters.
Definition: fs_splitpdfdoc.h:319
WString separator
A string value used to inserted between the original PDF file name and the custom name to generate a ...
Definition: fs_splitpdfdoc.h:164
Header file for PDF document related definitions and classes.
Definition: fs_basictypes.h:228
File reading interface.
Definition: fx_stream.h:570
WStringArray after_split_files_paths
An array of strings used to represent the paths of multiple PDF documents generated by splitting.
Definition: fs_splitpdfdoc.h:349
WIDE STRING CLASS.
Definition: fx_string.h:1461
Definition: fs_pdfdoc.h:648
Definition: fs_splitpdfdoc.h:359
Definition: fs_splitpdfdoc.h:401
bool operator==(const SplitDocumentInfo &other) const
Equal operator.
Definition: fs_splitpdfdoc.h:365
SplitFileState
Enumeration for the state of split file.
Definition: fs_splitpdfdoc.h:280
SplitOutputSettingData(const wchar_t *output_folder_path, bool add_before_or_after_orginal_name, const wchar_t *custom_name, const wchar_t *separator, bool is_overwrite)
Constructor, with parameters.
Definition: fs_splitpdfdoc.h:58
SplitOutputSettingData()
Constructor.
Definition: fs_splitpdfdoc.h:27
SplitFileResult()
Constructor.
Definition: fs_splitpdfdoc.h:308
SplitDocumentInfo & operator=(const SplitDocumentInfo &other)
Assign operator.
WString before_splitting_file_name
A string value used to represent the original PDF file name before splitting.
Definition: fs_splitpdfdoc.h:343
bool add_before_or_after_orginal_name
A boolean value is used to determine whether to add the custom name and number before or after the or...
Definition: fs_splitpdfdoc.h:140
SplitDocumentInfo(const wchar_t *file_path, const wchar_t *password)
Constructor, with parameters.
Definition: fs_common.h:373
void * FS_HANDLE
Handle type.
Definition: fs_basictypes.h:214
Header file for common definitions and classes.
Definition: fs_splitpdfdoc.h:273
Definition: fs_basictypes.h:443
bool IsEmpty() const
Check whether current object is empty or not.
WString output_folder_path
A valid folder path for the PDF documents generated by splitting.
Definition: fs_splitpdfdoc.h:128
Foxit namespace.
Definition: fs_taggedpdf.h:27
bool is_overwrite
A boolean value used to indicate whether to overwrite the PDF document generated by splitting when th...
Definition: fs_splitpdfdoc.h:173
WString custom_name
A string value used to be added before or after the original PDF file name to generate a new file nam...
Definition: fs_splitpdfdoc.h:152
bool operator!=(const SplitDocumentInfo &other) const
Not equal operator.
#define NULL
The null-pointer value.
Definition: fx_system.h:792
Definition: fs_splitpdfdoc.h:270
SplitFileState split_file_state
An enumeration value used to represent the status of the PDF documents generated by splitting.
Definition: fs_splitpdfdoc.h:355
void Set(const wchar_t *output_folder_path, bool add_before_or_after_orginal_name, const wchar_t *custom_name, const wchar_t *separator, bool is_overwrite)
Set value.
Definition: fs_splitpdfdoc.h:109
Definition: fs_splitpdfdoc.h:24