Foxit PDF SDK
fs_optimization.h
Go to the documentation of this file.
1 
15 #ifndef FS_PDFOPTIMIZATION_H_
16 #define FS_PDFOPTIMIZATION_H_
17 
18 #include "common/fs_common.h"
19 #include "pdf/fs_pdfdoc.h"
20 #include "pdf/fs_pdfpage.h"
21 
27 namespace foxit {
31 namespace addon {
35 namespace optimization {
36  class ImageSettings;
37  class MonoImageSettings;
38  class OptimizerSettings;
39 
47 class Optimizer FS_FINAL : public Base {
48  public:
67  static common::Progressive Optimize(const pdf::PDFDoc& doc,const OptimizerSettings& settings,common::PauseCallback* pause);
68 
89 };
90 
97 class ImageSettings FS_FINAL : public Base {
98  public:
104  typedef enum _ImageCompressMode {
114 
120  typedef enum _ImageCompressQuality {
132 
138  typedef enum _StretchMode {
140  e_StretchOff = 0x00,
149  } StretchMode;
150 
158  ImageSettings();
159 
160  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
161  explicit ImageSettings(FS_HANDLE handle);
162 
164  ~ImageSettings();
165 
171  ImageSettings(const ImageSettings& other);
172 
180  ImageSettings& operator = (const ImageSettings& other);
188  bool operator == (const ImageSettings& other) const;
189 
197  bool operator != (const ImageSettings& other) const;
198 
206  bool IsEmpty() const;
207 
219  void SetStretchMode(StretchMode mode);
220 
231  void SetImageDPI(int32 dpi);
244 
257  void SetQuality(ImageCompressQuality quality);
258 };
259 
266 class MonoImageSettings FS_FINAL : public Base {
267  public:
273  typedef enum _MonoImageCompressMode {
287 
293  typedef enum _MonoImageCompressQuality {
299 
305  typedef enum _StretchMode {
307  e_StretchOff = 0x00,
316  } StretchMode;
317 
326 
327  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
328  explicit MonoImageSettings(FS_HANDLE handle);
329 
332 
338  MonoImageSettings(const MonoImageSettings& other);
339 
355  bool operator == (const MonoImageSettings& other) const;
356 
364  bool operator != (const MonoImageSettings& other) const;
365 
373  bool IsEmpty() const;
374 
385  void SetImageDPI(int32 dpi);
386 
399 
411  void SetStretchMode(StretchMode mode) ;
412 
426  void SetQuality(MonoImageCompressQuality quality);
427 };
428 
435 class UnembeddedFontSettings FS_FINAL : public Base {
436  public:
441 
442  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
443  explicit UnembeddedFontSettings(FS_HANDLE handle);
444 
447 
454 
471  bool operator==(const UnembeddedFontSettings& other) const;
472 
481  bool operator!=(const UnembeddedFontSettings& other) const;
482 
490  bool IsEmpty() const;
491 
504  void SetUnembeddedFontNameArray(const WStringArray& font_name_array);
505 };
506 
512 class OptimizerSettings FS_FINAL : public Base {
513  public:
519  typedef enum _OptimizerOptions {
531 
537  typedef enum _CleanUpOptions {
546  } CleanUpOptions;
547 
553  typedef enum _DiscardObjectsOptions {
584 
590  typedef enum _DiscardUserDataOptions {
604 
614 
615  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
616  explicit OptimizerSettings(FS_HANDLE handle);
617 
620 
626  OptimizerSettings(const OptimizerSettings& other);
627 
643  bool operator == (const OptimizerSettings& other) const;
644 
652  bool operator != (const OptimizerSettings& other) const;
653 
661  bool IsEmpty() const;
662 
676  void SetOptimizerOptions(uint32 optimize_options);
677 
692  void SetColorGrayImageSettings(const ImageSettings& settings);
693 
708  void SetMonoImageSettings(const MonoImageSettings& settings);
709 
724 
741  void SetCleanUpOptions(foxit::uint32 clean_up_options);
742 
759  void SetDiscardObjectsOptions(foxit::uint32 discard_objects_options);
760 
777  void SetDiscardUserDataOptions(foxit::uint32 discard_userdata_options);
778 };
779 
780 } // namespace optimization
781 } // namespace addon
782 } // namespace foxit
783 
784 #endif
Compression mode: CCITT Group 4.
Definition: fs_optimization.h:277
Compression quality: Low.
Definition: fs_optimization.h:124
bool IsEmpty() const
Check whether current object is empty or not.
MonoImageCompressMode
Enumeration for compression mode used for monochrome image.
Definition: fs_optimization.h:273
void SetCompressionMode(MonoImageCompressMode mode)
Set compression mode used for optimizing monochrome images in a PDF document.
When this is set, that means not to do any interpolation for stretching.
Definition: fs_optimization.h:148
Use Flate to encode streams that are not encoded.
Definition: fs_optimization.h:539
Optimize PDF document by discarding user data.
Definition: fs_optimization.h:529
Header file for PDF document related definitions and classes.
Compression mode: CCITT Group 3.
Definition: fs_optimization.h:275
Definition: fs_basictypes.h:226
void SetStretchMode(StretchMode mode)
Set stretch mode used for optimizing monochrome images in a PDF document.
Discard embedded print settings.
Definition: fs_optimization.h:567
Discard hidden layer content and flatten visible layers.
Definition: fs_optimization.h:602
Discard file attachments.
Definition: fs_optimization.h:598
void SetUnembeddedFontSettings(const UnembeddedFontSettings &settings)
Set optimization related settings for unembedding fonts.
static common::Progressive Optimize(const pdf::PDFDoc &doc, const OptimizerSettings &settings, common::PauseCallback *pause)
Optimize the given PDF document with specified optimizers settings.
bool operator==(const MonoImageSettings &other) const
Equal operator.
Discard all form submission, import and reset actions.
Definition: fs_optimization.h:555
Compression quality: Lossless.
Definition: fs_optimization.h:295
OptimizerSettings & operator=(const OptimizerSettings &other)
Assign operator.
Definition: fs_optimization.h:47
bool operator!=(const UnembeddedFontSettings &other) const
Not equal operator.
void SetDiscardObjectsOptions(foxit::uint32 discard_objects_options)
Set optimization related options for discarding objects.
bool operator==(const OptimizerSettings &other) const
Equal operator.
When this is set, that means not to do halftone for shrinking or rotating.
Definition: fs_optimization.h:311
When this is set, that means to do interpolation for zooming.
Definition: fs_optimization.h:142
Definition: fs_pdfdoc.h:389
DiscardUserDataOptions
Enumeration for discarding user data options.
Definition: fs_optimization.h:590
Definition: fs_optimization.h:97
Compression mode: high.
Definition: fs_optimization.h:279
Compression mode: jpeg2000.
Definition: fs_optimization.h:110
Discard all JavaScript actions.
Definition: fs_optimization.h:563
bool operator==(const ImageSettings &other) const
Equal operator.
void SetColorGrayImageSettings(const ImageSettings &settings)
Set optimization related settings for color/gray image.
void SetDiscardUserDataOptions(foxit::uint32 discard_userdata_options)
Set optimization related options for discarding user data.
When this is set, that means to do bicubic interpolation for zooming.
Definition: fs_optimization.h:313
Optimize PDF document by unembedding some embedded fonts.
Definition: fs_optimization.h:527
bool IsEmpty() const
Check whether current object is empty or not.
Discard external cross references.
Definition: fs_optimization.h:594
When this is set, that means to do bicubic interpolation for zooming.
Definition: fs_optimization.h:146
When this is set, that means to do interpolation for zooming.
Definition: fs_optimization.h:309
void SetStretchMode(StretchMode mode)
Set stretch mode used for optimizing color/gray images in a PDF document.
bool IsEmpty() const
Check whether current object is empty or not.
Compression mode: retain, which means no compression.
Definition: fs_optimization.h:112
Discard all annotations, forms and multimedia.
Definition: fs_optimization.h:592
DiscardObjectsOptions
Enumeration for discarding objects options.
Definition: fs_optimization.h:553
Discard embedded page thumbnails.
Definition: fs_optimization.h:565
Compression quality: Minimum.
Definition: fs_optimization.h:122
bool operator !=(const ImageSettings &other) const
Not equal operator.
bool operator==(const UnembeddedFontSettings &other) const
Equal operator.
Optimize PDF document by compressing images.
Definition: fs_optimization.h:521
Compression mode: retain, which means no compression.
Definition: fs_optimization.h:283
Definition: fx_basic.h:3752
Definition: fs_optimization.h:266
StretchMode
Enumeration for stretch mode.
Definition: fs_optimization.h:305
bool operator !=(const OptimizerSettings &other) const
Not equal operator.
OptimizerOptions
Enumeration for optimizer options.
Definition: fs_optimization.h:519
Definition: fs_common.h:568
Optimize PDF document by discarding objects.
Definition: fs_optimization.h:525
FX_UINT32 uint32
32-bit unsigned integer.
Definition: fs_basictypes.h:198
void SetImageDPI(int32 dpi)
Set the image DPI used for optimizing color/gray images in a PDF document.
void * FS_HANDLE
Handle type.
Definition: fs_basictypes.h:216
When this is set, that means not to do any interpolation for stretching.
Definition: fs_optimization.h:315
Compression quality: Lossy.
Definition: fs_optimization.h:297
Header file for common definitions and classes.
ImageSettings & operator=(const ImageSettings &other)
Assign operator.
Compression mode: jpeg.
Definition: fs_optimization.h:108
Optimize PDF document by cleaning up.
Definition: fs_optimization.h:523
In streams that use LZW encoding, use Flate instead.
Definition: fs_optimization.h:541
void SetOptimizerOptions(uint32 optimize_options)
Set options to decide which kind of optimizer setting will be used for optimizing PDF document.
ImageCompressQuality
Enumeration for loss compression quality used for color or gray image.
Definition: fs_optimization.h:120
void SetCompressionMode(ImageCompressMode mode)
Set compression mode used for optimizing color/gray images in a PDF document.
Remove invalid bookmarks.
Definition: fs_optimization.h:543
Discard private data of other applications.
Definition: fs_optimization.h:600
Compression quality: Medium.
Definition: fs_optimization.h:126
FX_INT32 int32
32-bit signed integer.
Definition: fs_basictypes.h:196
Definition: fs_basictypes.h:399
void SetMonoImageSettings(const MonoImageSettings &settings)
Set optimization related settings for monochrome image.
Compression quality: High.
Definition: fs_optimization.h:128
Header file for PDF page related definitions and classes.
static common::Progressive StartSubsetEmbedFont(const pdf::PDFDoc &doc, common::PauseCallback *pause)
Start to make subsets for embedded fonts in the given PDF document.
void SetUnembeddedFontNameArray(const WStringArray &font_name_array)
Set a font name array to specify which fonts are to be unembeded.
MonoImageCompressQuality
Enumeration for compression quality used for monochrome image.
Definition: fs_optimization.h:293
When this is set, that means do without stretching.
Definition: fs_optimization.h:307
Foxit namespace.
Definition: fs_compare.h:27
bool operator !=(const MonoImageSettings &other) const
Not equal operator.
StretchMode
Enumeration for stretch mode.
Definition: fs_optimization.h:138
Definition: fs_optimization.h:512
When this is set, that means not to do halftone for shrinking or rotating.
Definition: fs_optimization.h:144
void SetImageDPI(int32 dpi)
Set the image DPI used for optimizing monochrome images in a PDF document.
Compression quality: Maximum.
Definition: fs_optimization.h:130
void SetCleanUpOptions(foxit::uint32 clean_up_options)
Set optimization related options for cleaning up.
Compression mode: jbig2.
Definition: fs_optimization.h:281
Discard bookmarks.
Definition: fs_optimization.h:569
ImageCompressMode
Enumeration for compression mode used for color or gray image.
Definition: fs_optimization.h:104
When this is set, that means do without stretching.
Definition: fs_optimization.h:140
Discard document information and metadata.
Definition: fs_optimization.h:596
Discard document tags.
Definition: fs_optimization.h:580
MonoImageSettings & operator=(const MonoImageSettings &other)
Assign operator.
Compression mode: run-length.
Definition: fs_optimization.h:285
Discard all alternate images.
Definition: fs_optimization.h:578
void SetQuality(MonoImageCompressQuality quality)
Set compression quality, used for optimizing monochrome images in a PDF document.
bool IsEmpty() const
Check whether current object is empty or not.
CleanUpOptions
Enumeration for cleaning up options.
Definition: fs_optimization.h:537
UnembeddedFontSettings & operator=(const UnembeddedFontSettings &other)
Assign operator.
void SetQuality(ImageCompressQuality quality)
Set the quality for lossy compression modes, used for optimizing color/gray images in a PDF document.
Remove invalid links.
Definition: fs_optimization.h:545
Discard embedded search index.
Definition: fs_optimization.h:582
Compression mode: high.
Definition: fs_optimization.h:106