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 
69 };
70 
77 class ImageSettings FS_FINAL : public Base {
78  public:
84  typedef enum _ImageCompressMode {
94 
100  typedef enum _ImageCompressQuality {
112 
118  typedef enum _StretchMode {
120  e_StretchOff = 0x00,
129  } StretchMode;
130 
138  ImageSettings();
139 
140  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
141  explicit ImageSettings(FS_HANDLE handle);
142 
144  ~ImageSettings();
145 
151  ImageSettings(const ImageSettings& other);
152 
160  ImageSettings& operator = (const ImageSettings& other);
168  bool operator == (const ImageSettings& other) const;
169 
177  bool operator != (const ImageSettings& other) const;
178 
186  bool IsEmpty() const;
187 
199  void SetStretchMode(StretchMode mode);
200 
211  void SetImageDPI(int32 dpi);
224 
237  void SetQuality(ImageCompressQuality quality);
238 };
239 
246 class MonoImageSettings FS_FINAL : public Base {
247  public:
253  typedef enum _MonoImageCompressMode {
267 
273  typedef enum _MonoImageCompressQuality {
279 
285  typedef enum _StretchMode {
287  e_StretchOff = 0x00,
296  } StretchMode;
297 
306 
307  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
308  explicit MonoImageSettings(FS_HANDLE handle);
309 
312 
318  MonoImageSettings(const MonoImageSettings& other);
319 
335  bool operator == (const MonoImageSettings& other) const;
336 
344  bool operator != (const MonoImageSettings& other) const;
345 
353  bool IsEmpty() const;
354 
365  void SetImageDPI(int32 dpi);
366 
379 
391  void SetStretchMode(StretchMode mode) ;
392 
406  void SetQuality(MonoImageCompressQuality quality);
407 };
408 
414 class OptimizerSettings FS_FINAL : public Base {
415  public:
421  typedef enum _OptimizerOptions {
429 
435  typedef enum _CleanUpOptions {
444  } CleanUpOptions;
445 
451  typedef enum _DiscardObjectsOptions {
469 
479 
480  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
481  explicit OptimizerSettings(FS_HANDLE handle);
482 
485 
491  OptimizerSettings(const OptimizerSettings& other);
492 
508  bool operator == (const OptimizerSettings& other) const;
509 
517  bool operator != (const OptimizerSettings& other) const;
518 
526  bool IsEmpty() const;
527 
541  void SetOptimizerOptions(uint32 optimize_options);
542 
557  void SetColorGrayImageSettings(const ImageSettings& settings);
558 
573  void SetMonoImageSettings(const MonoImageSettings& settings);
574 
591  void SetCleanUpOptions(foxit::uint32 clean_up_options);
592 
609  void SetDiscardObjectsOptions(foxit::uint32 discard_objects_options);
610 };
611 
612 } // namespace optimization
613 } // namespace addon
614 } // namespace foxit
615 
616 #endif
Compression mode: CCITT Group 4.
Definition: fs_optimization.h:257
Compression quality: Low.
Definition: fs_optimization.h:104
MonoImageCompressMode
Enumeration for compression mode used for monochrome image.
Definition: fs_optimization.h:253
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:128
Use Flate to encode streams that are not encoded.
Definition: fs_optimization.h:437
Header file for PDF document related definitions and classes.
Compression mode: CCITT Group 3.
Definition: fs_optimization.h:255
void SetStretchMode(StretchMode mode)
Set stretch mode used for optimizing monochrome images in a PDF document.
Discard embedded print settings.
Definition: fs_optimization.h:465
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:453
Compression quality: Lossless.
Definition: fs_optimization.h:275
OptimizerSettings & operator=(const OptimizerSettings &other)
Assign operator.
Definition: fs_optimization.h:47
void SetDiscardObjectsOptions(foxit::uint32 discard_objects_options)
Set optimization related options for discarding objects.
bool operator==(const OptimizerSettings &other) const
Equal operator.
bool operator!=(const ImageSettings &other) const
Not equal operator.
When this is set, that means not to do halftone for shrinking or rotating.
Definition: fs_optimization.h:291
When this is set, that means to do interpolation for zooming.
Definition: fs_optimization.h:122
Definition: fs_pdfdoc.h:352
Definition: fs_optimization.h:77
Compression mode: high.
Definition: fs_optimization.h:259
Compression mode: jpeg2000.
Definition: fs_optimization.h:90
Discard all JavaScript actions.
Definition: fs_optimization.h:461
bool operator==(const ImageSettings &other) const
Equal operator.
void SetColorGrayImageSettings(const ImageSettings &settings)
Set optimization related settings for color/gray image.
When this is set, that means to do bicubic interpolation for zooming.
Definition: fs_optimization.h:293
bool IsEmpty() const
Check whether current object is empty or not.
When this is set, that means to do bicubic interpolation for zooming.
Definition: fs_optimization.h:126
When this is set, that means to do interpolation for zooming.
Definition: fs_optimization.h:289
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:92
DiscardObjectsOptions
Enumeration for discarding objects options.
Definition: fs_optimization.h:451
Discard embedded page thumbnails.
Definition: fs_optimization.h:463
Compression quality: Minimum.
Definition: fs_optimization.h:102
bool operator!=(const MonoImageSettings &other) const
Not equal operator.
Optimize PDF document by compressing images.
Definition: fs_optimization.h:423
Compression mode: retain, which means no compression.
Definition: fs_optimization.h:263
Definition: fx_basic.h:3737
Definition: fs_optimization.h:246
StretchMode
Enumeration for stretch mode.
Definition: fs_optimization.h:285
OptimizerOptions
Enumeration for optimizer options.
Definition: fs_optimization.h:421
Definition: fs_common.h:465
Optimize PDF document by discarding objects.
Definition: fs_optimization.h:427
Compression mode: jpeg2.
Definition: fs_optimization.h:261
bool operator!=(const OptimizerSettings &other) const
Not equal operator.
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:295
Compression quality: Lossy.
Definition: fs_optimization.h:277
Header file for common definitions and classes.
ImageSettings & operator=(const ImageSettings &other)
Assign operator.
Compression mode: jpeg.
Definition: fs_optimization.h:88
Optimize PDF document by cleaning up.
Definition: fs_optimization.h:425
In streams that use LZW encoding, use Flate instead.
Definition: fs_optimization.h:439
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:100
void SetCompressionMode(ImageCompressMode mode)
Set compression mode used for optimizing color/gray images in a PDF document.
Remove invalid bookmarks.
Definition: fs_optimization.h:441
Compression quality: Medium.
Definition: fs_optimization.h:106
FX_INT32 int32
32-bit signed integer.
Definition: fs_basictypes.h:196
Definition: fs_basictypes.h:393
void SetMonoImageSettings(const MonoImageSettings &settings)
Set optimization related settings for monochrome image.
Compression quality: High.
Definition: fs_optimization.h:108
Header file for PDF page related definitions and classes.
MonoImageCompressQuality
Enumeration for compression quality used for monochrome image.
Definition: fs_optimization.h:273
When this is set, that means do without stretching.
Definition: fs_optimization.h:287
Foxit namespace.
Definition: fs_compare.h:27
StretchMode
Enumeration for stretch mode.
Definition: fs_optimization.h:118
Definition: fs_optimization.h:414
When this is set, that means not to do halftone for shrinking or rotating.
Definition: fs_optimization.h:124
void SetImageDPI(int32 dpi)
Set the image DPI used for optimizing monochrome images in a PDF document.
Compression quality: Maximum.
Definition: fs_optimization.h:110
void SetCleanUpOptions(foxit::uint32 clean_up_options)
Set optimization related options for cleaning up.
Discard bookmarks.
Definition: fs_optimization.h:467
ImageCompressMode
Enumeration for compression mode used for color or gray image.
Definition: fs_optimization.h:84
When this is set, that means do without stretching.
Definition: fs_optimization.h:120
MonoImageSettings & operator=(const MonoImageSettings &other)
Assign operator.
Compression mode: run-length.
Definition: fs_optimization.h:265
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:435
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:443
Compression mode: high.
Definition: fs_optimization.h:86