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 {
142  e_StretchOff = 0x00,
151  } StretchMode;
152 
160  ImageSettings();
161 
162  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
163  explicit ImageSettings(FS_HANDLE handle);
164 
166  ~ImageSettings();
167 
173  ImageSettings(const ImageSettings& other);
174 
182  ImageSettings& operator = (const ImageSettings& other);
190  bool operator == (const ImageSettings& other) const;
191 
199  bool operator != (const ImageSettings& other) const;
200 
208  bool IsEmpty() const;
209 
221  void SetStretchMode(StretchMode mode);
222 
234  void SetImageDPI(int32 dpi);
235 
254  void SetImageDPILimit(int dpi_limit);
255 
268 
281  void SetQuality(ImageCompressQuality quality);
282 };
283 
290 class MonoImageSettings FS_FINAL : public Base {
291  public:
297  typedef enum _MonoImageCompressMode {
311 
317  typedef enum _MonoImageCompressQuality {
323 
329  typedef enum _StretchMode {
333  e_StretchOff = 0x00,
342  } StretchMode;
343 
352 
353  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
354  explicit MonoImageSettings(FS_HANDLE handle);
355 
358 
364  MonoImageSettings(const MonoImageSettings& other);
365 
381  bool operator == (const MonoImageSettings& other) const;
382 
390  bool operator != (const MonoImageSettings& other) const;
391 
399  bool IsEmpty() const;
400 
412  void SetImageDPI(int32 dpi);
413 
432  void SetImageDPILimit(int dpi_limit);
433 
446 
458  void SetStretchMode(StretchMode mode) ;
459 
473  void SetQuality(MonoImageCompressQuality quality);
474 };
475 
482 class UnembeddedFontSettings FS_FINAL : public Base {
483  public:
488 
489  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
490  explicit UnembeddedFontSettings(FS_HANDLE handle);
491 
494 
501 
510 
519  bool operator==(const UnembeddedFontSettings& other) const;
520 
529  bool operator!=(const UnembeddedFontSettings& other) const;
530 
538  bool IsEmpty() const;
539 
552  void SetUnembeddedFontNameArray(const WStringArray& font_name_array);
553 };
554 
560 class OptimizerSettings FS_FINAL : public Base {
561  public:
567  typedef enum _OptimizerOptions {
579 
585  typedef enum _CleanUpOptions {
594  } CleanUpOptions;
595 
601  typedef enum _DiscardObjectsOptions {
632 
638  typedef enum _DiscardUserDataOptions {
652 
662 
663  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
664  explicit OptimizerSettings(FS_HANDLE handle);
665 
668 
674  OptimizerSettings(const OptimizerSettings& other);
675 
684 
692  bool operator == (const OptimizerSettings& other) const;
693 
701  bool operator != (const OptimizerSettings& other) const;
702 
710  bool IsEmpty() const;
711 
725  void SetOptimizerOptions(uint32 optimize_options);
726 
741  void SetColorGrayImageSettings(const ImageSettings& settings);
742 
757  void SetMonoImageSettings(const MonoImageSettings& settings);
758 
773 
790  void SetCleanUpOptions(foxit::uint32 clean_up_options);
791 
808  void SetDiscardObjectsOptions(foxit::uint32 discard_objects_options);
809 
826  void SetDiscardUserDataOptions(foxit::uint32 discard_userdata_options);
827 };
828 
829 } // namespace optimization
830 } // namespace addon
831 } // namespace foxit
832 
833 #endif
Compression mode: CCITT Group 4.
Definition: fs_optimization.h:301
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:297
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:150
Use Flate to encode streams that are not encoded.
Definition: fs_optimization.h:587
Optimize PDF document by discarding user data.
Definition: fs_optimization.h:577
Header file for PDF document related definitions and classes.
Compression mode: CCITT Group 3.
Definition: fs_optimization.h:299
Definition: fs_basictypes.h:224
void SetStretchMode(StretchMode mode)
Set stretch mode used for optimizing monochrome images in a PDF document.
Discard embedded print settings.
Definition: fs_optimization.h:615
Discard hidden layer content and flatten visible layers.
Definition: fs_optimization.h:650
Discard file attachments.
Definition: fs_optimization.h:646
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 optimizer settings.
bool operator==(const MonoImageSettings &other) const
Equal operator.
Discard all form submission, import and reset actions.
Definition: fs_optimization.h:603
Compression quality: Lossless.
Definition: fs_optimization.h:319
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 to do default stretching.
Definition: fs_optimization.h:140
When this is set, that means not to do halftone for shrinking or rotating.
Definition: fs_optimization.h:337
When this is set, that means to do interpolation for zooming.
Definition: fs_optimization.h:144
Definition: fs_pdfdoc.h:508
DiscardUserDataOptions
Enumeration for discarding user data options.
Definition: fs_optimization.h:638
Definition: fs_optimization.h:97
Compression mode: high.
Definition: fs_optimization.h:303
Compression mode: jpeg2000.
Definition: fs_optimization.h:110
Discard all JavaScript actions.
Definition: fs_optimization.h:611
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:339
void SetImageDPILimit(int dpi_limit)
Set the lower limit DPI value for the monochrome image to decide if the image is to be compressed in ...
Optimize PDF document by unembedding some embedded fonts.
Definition: fs_optimization.h:575
bool IsEmpty() const
Check whether current object is empty or not.
Discard external cross references.
Definition: fs_optimization.h:642
When this is set, that means to do bicubic interpolation for zooming.
Definition: fs_optimization.h:148
When this is set, that means to do interpolation for zooming.
Definition: fs_optimization.h:335
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
void SetImageDPILimit(int dpi_limit)
Set the lower limit DPI value for the color/gray image to decide if the image is to be compressed in ...
Discard all annotations, forms and multimedia.
Definition: fs_optimization.h:640
DiscardObjectsOptions
Enumeration for discarding objects options.
Definition: fs_optimization.h:601
Discard embedded page thumbnails.
Definition: fs_optimization.h:613
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:569
Compression mode: retain, which means no compression.
Definition: fs_optimization.h:307
Definition: fx_basic.h:3761
Definition: fs_optimization.h:290
StretchMode
Enumeration for stretch mode.
Definition: fs_optimization.h:329
bool operator !=(const OptimizerSettings &other) const
Not equal operator.
OptimizerOptions
Enumeration for optimizer options.
Definition: fs_optimization.h:567
Definition: fs_common.h:336
Optimize PDF document by discarding objects.
Definition: fs_optimization.h:573
FX_UINT32 uint32
32-bit unsigned integer.
Definition: fs_basictypes.h:196
void SetImageDPI(int32 dpi)
Set the DPI value as the target compressed value for compressing color/gray images in a PDF document.
void * FS_HANDLE
Handle type.
Definition: fs_basictypes.h:214
When this is set, that means not to do any interpolation for stretching.
Definition: fs_optimization.h:341
Compression quality: Lossy.
Definition: fs_optimization.h:321
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:571
In streams that use LZW encoding, use Flate instead.
Definition: fs_optimization.h:589
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:591
Discard private data of other applications.
Definition: fs_optimization.h:648
Compression quality: Medium.
Definition: fs_optimization.h:126
FX_INT32 int32
32-bit signed integer.
Definition: fs_basictypes.h:194
Definition: fs_basictypes.h:407
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:317
When this is set, that means to do without stretching.
Definition: fs_optimization.h:333
Foxit namespace.
Definition: fs_taggedpdf.h:27
bool operator !=(const MonoImageSettings &other) const
Not equal operator.
StretchMode
Enumeration for stretch mode.
Definition: fs_optimization.h:138
When this is set, that means to do default stretching.
Definition: fs_optimization.h:331
Definition: fs_optimization.h:560
When this is set, that means not to do halftone for shrinking or rotating.
Definition: fs_optimization.h:146
void SetImageDPI(int32 dpi)
Set the DPI value as the target compressed value for compressing 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:305
Discard bookmarks.
Definition: fs_optimization.h:617
ImageCompressMode
Enumeration for compression mode used for color or gray image.
Definition: fs_optimization.h:104
When this is set, that means to do without stretching.
Definition: fs_optimization.h:142
Discard document information and metadata.
Definition: fs_optimization.h:644
Discard document tags.
Definition: fs_optimization.h:628
MonoImageSettings & operator=(const MonoImageSettings &other)
Assign operator.
Compression mode: run-length.
Definition: fs_optimization.h:309
Discard all alternate images.
Definition: fs_optimization.h:626
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:585
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:593
Discard embedded search index.
Definition: fs_optimization.h:630
Compression mode: high.
Definition: fs_optimization.h:106