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 
295  void SetBackgroundDownScale(int32 down_scale);
296 
309  void SetForegroundDownScale(int32 down_scale);
310 
326  void SetTextSensitivity(int32 text_sensitivity);
327 };
328 
335 class MonoImageSettings FS_FINAL : public Base {
336  public:
342  typedef enum _MonoImageCompressMode {
356 
362  typedef enum _MonoImageCompressQuality {
368 
374  typedef enum _StretchMode {
378  e_StretchOff = 0x00,
387  } StretchMode;
388 
397 
398  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
399  explicit MonoImageSettings(FS_HANDLE handle);
400 
403 
409  MonoImageSettings(const MonoImageSettings& other);
410 
426  bool operator == (const MonoImageSettings& other) const;
427 
435  bool operator != (const MonoImageSettings& other) const;
436 
444  bool IsEmpty() const;
445 
457  void SetImageDPI(int32 dpi);
458 
477  void SetImageDPILimit(int dpi_limit);
478 
491 
503  void SetStretchMode(StretchMode mode) ;
504 
518  void SetQuality(MonoImageCompressQuality quality);
519 };
520 
527 class UnembeddedFontSettings FS_FINAL : public Base {
528  public:
533 
534  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
535  explicit UnembeddedFontSettings(FS_HANDLE handle);
536 
539 
546 
555 
564  bool operator==(const UnembeddedFontSettings& other) const;
565 
574  bool operator!=(const UnembeddedFontSettings& other) const;
575 
583  bool IsEmpty() const;
584 
597  void SetUnembeddedFontNameArray(const WStringArray& font_name_array);
598 };
599 
605 class OptimizerSettings FS_FINAL : public Base {
606  public:
612  typedef enum _OptimizerOptions {
624 
630  typedef enum _CleanUpOptions {
639  } CleanUpOptions;
640 
646  typedef enum _DiscardObjectsOptions {
677 
683  typedef enum _DiscardUserDataOptions {
697 
707 
708  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
709  explicit OptimizerSettings(FS_HANDLE handle);
710 
713 
719  OptimizerSettings(const OptimizerSettings& other);
720 
729 
737  bool operator == (const OptimizerSettings& other) const;
738 
746  bool operator != (const OptimizerSettings& other) const;
747 
755  bool IsEmpty() const;
756 
770  void SetOptimizerOptions(uint32 optimize_options);
771 
793  void SetColorGrayImageSettings(const ImageSettings& settings);
794 
809  void SetColorImageSettings(const ImageSettings& settings);
810 
825  void SetGrayscaleImageSettings(const ImageSettings& settings);
826 
841  void SetMonoImageSettings(const MonoImageSettings& settings);
842 
857 
874  void SetCleanUpOptions(foxit::uint32 clean_up_options);
875 
892  void SetDiscardObjectsOptions(foxit::uint32 discard_objects_options);
893 
910  void SetDiscardUserDataOptions(foxit::uint32 discard_userdata_options);
911 };
912 
913 } // namespace optimization
914 } // namespace addon
915 } // namespace foxit
916 
917 #endif
foxit::addon::optimization::ImageSettings::e_StretchNoSmooth
When this is set, that means not to do any interpolation for stretching.
Definition: fs_optimization.h:150
foxit::addon::optimization::ImageSettings::SetCompressionMode
void SetCompressionMode(ImageCompressMode mode)
Set compression mode used for optimizing color/gray images in a PDF document.
foxit::addon::optimization::ImageSettings::SetImageDPI
void SetImageDPI(int32 dpi)
Set the DPI value as the target compressed value for compressing color/gray images in a PDF document.
foxit::addon::optimization::MonoImageSettings::~MonoImageSettings
~MonoImageSettings()
Destructor.
foxit::addon::optimization::ImageSettings::StretchMode
StretchMode
Enumeration for stretch mode.
Definition: fs_optimization.h:138
foxit::FS_HANDLE
void * FS_HANDLE
Handle type.
Definition: fs_basictypes.h:214
foxit::addon::optimization::ImageSettings::e_ImageCompressQualityLow
Compression quality: Low.
Definition: fs_optimization.h:124
foxit::addon::optimization::ImageSettings::e_ImageCompressQualityMaximum
Compression quality: Maximum.
Definition: fs_optimization.h:130
foxit::addon::optimization::MonoImageSettings::e_StretchDefault
When this is set, that means to do default stretching.
Definition: fs_optimization.h:376
foxit::addon::optimization::MonoImageSettings::e_StretchBicubic
When this is set, that means to do bicubic interpolation for zooming.
Definition: fs_optimization.h:384
foxit::addon::optimization::OptimizerSettings::e_DiscardObjectsEmbeddedPrintSettings
Discard embedded print settings.
Definition: fs_optimization.h:660
foxit::addon::optimization::MonoImageSettings::operator!=
bool operator!=(const MonoImageSettings &other) const
Not equal operator.
foxit::addon::optimization::OptimizerSettings::e_CleanUpRemoveInvalidLinks
Remove invalid links.
Definition: fs_optimization.h:638
foxit::addon::optimization::ImageSettings::operator==
bool operator==(const ImageSettings &other) const
Equal operator.
foxit::addon::optimization::OptimizerSettings::e_DiscardObjectsFormActions
Discard all form submission, import and reset actions.
Definition: fs_optimization.h:648
foxit::addon::optimization::ImageSettings::SetStretchMode
void SetStretchMode(StretchMode mode)
Set stretch mode used for optimizing color/gray images in a PDF document.
foxit::addon::optimization::OptimizerSettings::e_DiscardUserDataLayer
Discard hidden layer content and flatten visible layers.
Definition: fs_optimization.h:695
foxit::addon::optimization::OptimizerSettings::e_OptimizerDiscardObjects
Optimize PDF document by discarding objects.
Definition: fs_optimization.h:618
foxit::addon::optimization::OptimizerSettings::OptimizerOptions
OptimizerOptions
Enumeration for optimizer options.
Definition: fs_optimization.h:612
foxit::addon::optimization::OptimizerSettings::e_CleanUpUseFlateInsteadOfLZW
In streams that use LZW encoding, use Flate instead.
Definition: fs_optimization.h:634
foxit::addon::optimization::ImageSettings::~ImageSettings
~ImageSettings()
Destructor.
foxit::addon::optimization::ImageSettings::e_StretchOff
When this is set, that means to do without stretching.
Definition: fs_optimization.h:142
foxit::addon::optimization::ImageSettings
Definition: fs_optimization.h:97
foxit::addon::optimization::OptimizerSettings::e_DiscardUserDataDocumentInfoAndMetaData
Discard document information and metadata.
Definition: fs_optimization.h:689
foxit::addon::optimization::MonoImageSettings
Definition: fs_optimization.h:335
foxit::common::Progressive
Definition: fs_common.h:346
foxit::addon::optimization::OptimizerSettings::e_DiscardObjectsEmbeddedSearchIndex
Discard embedded search index.
Definition: fs_optimization.h:675
foxit::addon::optimization::MonoImageSettings::SetImageDPI
void SetImageDPI(int32 dpi)
Set the DPI value as the target compressed value for compressing monochrome images in a PDF document.
foxit::addon::optimization::OptimizerSettings::operator==
bool operator==(const OptimizerSettings &other) const
Equal operator.
foxit::addon::optimization::MonoImageSettings::SetQuality
void SetQuality(MonoImageCompressQuality quality)
Set compression quality, used for optimizing monochrome images in a PDF document.
foxit::addon::optimization::ImageSettings::SetImageDPILimit
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 ...
foxit::addon::optimization::OptimizerSettings::~OptimizerSettings
~OptimizerSettings()
Destructor.
fs_common.h
Header file for common definitions and classes.
foxit::addon::optimization::ImageSettings::e_ImageCompressQualityMinimum
Compression quality: Minimum.
Definition: fs_optimization.h:122
foxit::addon::optimization::Optimizer
Definition: fs_optimization.h:47
foxit::addon::optimization::MonoImageSettings::StretchMode
StretchMode
Enumeration for stretch mode.
Definition: fs_optimization.h:374
foxit::addon::optimization::OptimizerSettings::OptimizerSettings
OptimizerSettings()
Constructor.
foxit::addon::optimization::ImageSettings::SetQuality
void SetQuality(ImageCompressQuality quality)
Set the quality for lossy compression modes, used for optimizing color/gray images in a PDF document.
foxit::addon::optimization::ImageSettings::e_StretchInterpol
When this is set, that means to do interpolation for zooming.
Definition: fs_optimization.h:144
foxit::addon::optimization::MonoImageSettings::IsEmpty
bool IsEmpty() const
Check whether current object is empty or not.
foxit::addon::optimization::MonoImageSettings::e_StretchDownsample
When this is set, that means not to do halftone for shrinking or rotating.
Definition: fs_optimization.h:382
foxit::addon::optimization::ImageSettings::e_ImageCompressRetain
Compression mode: retain, which means no compression.
Definition: fs_optimization.h:112
foxit::addon::optimization::ImageSettings::SetForegroundDownScale
void SetForegroundDownScale(int32 down_scale)
Set the foreground downscale value for lossy compression modes, used for optimizing color images in a...
foxit::addon::optimization::OptimizerSettings::e_CleanUpUseFlateForNonEncodedStream
Use Flate to encode streams that are not encoded.
Definition: fs_optimization.h:632
foxit::addon::optimization::OptimizerSettings::SetUnembeddedFontSettings
void SetUnembeddedFontSettings(const UnembeddedFontSettings &settings)
Set optimization related settings for unembedding fonts.
foxit::addon::optimization::MonoImageSettings::e_ImageCompressHigh
Compression mode: high.
Definition: fs_optimization.h:348
foxit::addon::optimization::OptimizerSettings::SetCleanUpOptions
void SetCleanUpOptions(foxit::uint32 clean_up_options)
Set optimization related options for cleaning up.
foxit::addon::optimization::OptimizerSettings::e_CleanUpRemoveInvalidBookmarks
Remove invalid bookmarks.
Definition: fs_optimization.h:636
foxit::addon::optimization::MonoImageSettings::e_ImageCompressCCITT4
Compression mode: CCITT Group 4.
Definition: fs_optimization.h:346
foxit::addon::optimization::MonoImageSettings::SetImageDPILimit
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 ...
foxit::addon::optimization::UnembeddedFontSettings::UnembeddedFontSettings
UnembeddedFontSettings()
Constructor.
foxit::addon::optimization::UnembeddedFontSettings::~UnembeddedFontSettings
~UnembeddedFontSettings()
Destructor.
foxit::addon::optimization::MonoImageSettings::e_ImageCompressQualityLossy
Compression quality: Lossy.
Definition: fs_optimization.h:366
foxit::addon::optimization::ImageSettings::SetTextSensitivity
void SetTextSensitivity(int32 text_sensitivity)
Set the text sensitivity for lossy compression modes, used for optimizing color images in a PDF docum...
foxit::addon::optimization::OptimizerSettings::SetColorGrayImageSettings
void SetColorGrayImageSettings(const ImageSettings &settings)
Set optimization related settings for color/gray image.
foxit::addon::optimization::ImageSettings::operator!=
bool operator!=(const ImageSettings &other) const
Not equal operator.
foxit::addon::optimization::OptimizerSettings::e_DiscardObjectsDocumentTags
Discard document tags.
Definition: fs_optimization.h:673
foxit::addon::optimization::UnembeddedFontSettings::operator!=
bool operator!=(const UnembeddedFontSettings &other) const
Not equal operator.
foxit::addon::optimization::MonoImageSettings::e_ImageCompressCCITT3
Compression mode: CCITT Group 3.
Definition: fs_optimization.h:344
foxit::addon::optimization::ImageSettings::SetBackgroundDownScale
void SetBackgroundDownScale(int32 down_scale)
Set the background downscale value for lossy compression modes, used for optimizing color images in a...
foxit::addon::optimization::UnembeddedFontSettings::operator=
UnembeddedFontSettings & operator=(const UnembeddedFontSettings &other)
Assign operator.
foxit::addon::optimization::MonoImageSettings::e_ImageCompressRunLength
Compression mode: run-length.
Definition: fs_optimization.h:354
foxit::addon::optimization::ImageSettings::e_ImageCompressjpeg2000
Compression mode: jpeg2000.
Definition: fs_optimization.h:110
foxit::addon::optimization::OptimizerSettings::e_DiscardUserDataFileAttchments
Discard file attachments.
Definition: fs_optimization.h:691
foxit::addon::optimization::OptimizerSettings::SetGrayscaleImageSettings
void SetGrayscaleImageSettings(const ImageSettings &settings)
Set optimization related settings for grayscale image.
foxit::addon::optimization::OptimizerSettings::e_DiscardObjectsAlternateImages
Discard all alternate images.
Definition: fs_optimization.h:671
foxit::addon::optimization::UnembeddedFontSettings
Definition: fs_optimization.h:527
foxit::addon::optimization::OptimizerSettings::SetOptimizerOptions
void SetOptimizerOptions(uint32 optimize_options)
Set options to decide which kind of optimizer setting will be used for optimizing PDF document.
foxit::addon::optimization::OptimizerSettings::e_OptimizerUnembeddedFonts
Optimize PDF document by unembedding some embedded fonts.
Definition: fs_optimization.h:620
foxit::addon::optimization::MonoImageSettings::operator=
MonoImageSettings & operator=(const MonoImageSettings &other)
Assign operator.
foxit::addon::optimization::UnembeddedFontSettings::SetUnembeddedFontNameArray
void SetUnembeddedFontNameArray(const WStringArray &font_name_array)
Set a font name array to specify which fonts are to be unembeded.
foxit::addon::optimization::MonoImageSettings::MonoImageSettings
MonoImageSettings()
Constructor.
foxit::addon::optimization::Optimizer::StartSubsetEmbedFont
static common::Progressive StartSubsetEmbedFont(const pdf::PDFDoc &doc, common::PauseCallback *pause)
Start to make subsets for embedded fonts in the given PDF document.
foxit::addon::optimization::MonoImageSettings::e_StretchOff
When this is set, that means to do without stretching.
Definition: fs_optimization.h:378
foxit::addon::optimization::ImageSettings::e_ImageCompressHigh
Compression mode: high.
Definition: fs_optimization.h:106
foxit::addon::optimization::OptimizerSettings::e_DiscardObjectsFlattenFormFields
Flatten form fields.
Definition: fs_optimization.h:650
foxit::addon::optimization::OptimizerSettings::e_DiscardObjectsJavaScriptActions
Discard all JavaScript actions.
Definition: fs_optimization.h:656
foxit::addon::optimization::OptimizerSettings::SetDiscardObjectsOptions
void SetDiscardObjectsOptions(foxit::uint32 discard_objects_options)
Set optimization related options for discarding objects.
foxit::addon::optimization::MonoImageSettings::e_ImageCompressQualityLossless
Compression quality: Lossless.
Definition: fs_optimization.h:364
foxit::addon::optimization::ImageSettings::IsEmpty
bool IsEmpty() const
Check whether current object is empty or not.
foxit::addon::optimization::Optimizer::Optimize
static common::Progressive Optimize(const pdf::PDFDoc &doc, const OptimizerSettings &settings, common::PauseCallback *pause)
Optimize the given PDF document with specified optimizer settings.
foxit::addon::optimization::MonoImageSettings::e_ImageCompressRetain
Compression mode: retain, which means no compression.
Definition: fs_optimization.h:352
fs_pdfpage.h
Header file for PDF page related definitions and classes.
foxit::addon::optimization::MonoImageSettings::e_StretchNoSmooth
When this is set, that means not to do any interpolation for stretching.
Definition: fs_optimization.h:386
foxit::addon::optimization::ImageSettings::e_StretchDownsample
When this is set, that means not to do halftone for shrinking or rotating.
Definition: fs_optimization.h:146
foxit::addon::optimization::ImageSettings::e_StretchBicubic
When this is set, that means to do bicubic interpolation for zooming.
Definition: fs_optimization.h:148
foxit
Foxit namespace.
Definition: fs_taggedpdf.h:27
foxit::addon::optimization::MonoImageSettings::MonoImageCompressMode
MonoImageCompressMode
Enumeration for compression mode used for monochrome image.
Definition: fs_optimization.h:342
foxit::addon::optimization::OptimizerSettings::DiscardObjectsOptions
DiscardObjectsOptions
Enumeration for discarding objects options.
Definition: fs_optimization.h:646
foxit::addon::optimization::OptimizerSettings::e_DiscardObjectsBookmarks
Discard bookmarks.
Definition: fs_optimization.h:662
IFX_Pause
Definition: fx_basic.h:3761
foxit::addon::optimization::OptimizerSettings::operator!=
bool operator!=(const OptimizerSettings &other) const
Not equal operator.
foxit::addon::optimization::ImageSettings::e_ImageCompressQualityHigh
Compression quality: High.
Definition: fs_optimization.h:128
fs_pdfdoc.h
Header file for PDF document related definitions and classes.
foxit::addon::optimization::OptimizerSettings::e_OptimizerCleanUp
Optimize PDF document by cleaning up.
Definition: fs_optimization.h:616
foxit::addon::optimization::OptimizerSettings::SetColorImageSettings
void SetColorImageSettings(const ImageSettings &settings)
Set optimization related settings for color image.
foxit::addon::optimization::ImageSettings::e_ImageCompressjpeg
Compression mode: jpeg.
Definition: fs_optimization.h:108
foxit::addon::optimization::ImageSettings::e_StretchDefault
When this is set, that means to do default stretching.
Definition: fs_optimization.h:140
foxit::addon::optimization::MonoImageSettings::SetCompressionMode
void SetCompressionMode(MonoImageCompressMode mode)
Set compression mode used for optimizing monochrome images in a PDF document.
foxit::addon::optimization::ImageSettings::e_ImageCompressQualityMedium
Compression quality: Medium.
Definition: fs_optimization.h:126
foxit::addon::optimization::OptimizerSettings::DiscardUserDataOptions
DiscardUserDataOptions
Enumeration for discarding user data options.
Definition: fs_optimization.h:683
foxit::pdf::PDFDoc
Definition: fs_pdfdoc.h:610
foxit::addon::optimization::OptimizerSettings::e_DiscardUserDataAllAnnotsFormsAndMultimedia
Discard all annotations, forms and multimedia.
Definition: fs_optimization.h:685
foxit::addon::optimization::MonoImageSettings::e_ImageCompressjbig2
Compression mode: jbig2.
Definition: fs_optimization.h:350
foxit::int32
FX_INT32 int32
32-bit signed integer.
Definition: fs_basictypes.h:194
foxit::addon::optimization::OptimizerSettings::e_DiscardUserDataPrivateDataOfOtherApp
Discard private data of other applications.
Definition: fs_optimization.h:693
foxit::addon::optimization::OptimizerSettings::SetMonoImageSettings
void SetMonoImageSettings(const MonoImageSettings &settings)
Set optimization related settings for monochrome image.
foxit::addon::optimization::ImageSettings::ImageCompressMode
ImageCompressMode
Enumeration for compression mode used for color or gray image.
Definition: fs_optimization.h:104
foxit::WStringArray
Definition: fs_basictypes.h:228
foxit::addon::optimization::ImageSettings::ImageSettings
ImageSettings()
Constructor.
foxit::addon::optimization::OptimizerSettings::e_OptimizerCompressImages
Optimize PDF document by compressing images.
Definition: fs_optimization.h:614
foxit::addon::optimization::UnembeddedFontSettings::operator==
bool operator==(const UnembeddedFontSettings &other) const
Equal operator.
foxit::addon::optimization::MonoImageSettings::MonoImageCompressQuality
MonoImageCompressQuality
Enumeration for compression quality used for monochrome image.
Definition: fs_optimization.h:362
foxit::addon::optimization::UnembeddedFontSettings::IsEmpty
bool IsEmpty() const
Check whether current object is empty or not.
foxit::addon::optimization::MonoImageSettings::e_StretchInterpol
When this is set, that means to do interpolation for zooming.
Definition: fs_optimization.h:380
foxit::addon::optimization::OptimizerSettings
Definition: fs_optimization.h:605
foxit::addon::optimization::OptimizerSettings::e_DiscardObjectsEmbeddedPageThumbnails
Discard embedded page thumbnails.
Definition: fs_optimization.h:658
foxit::addon::optimization::OptimizerSettings::SetDiscardUserDataOptions
void SetDiscardUserDataOptions(foxit::uint32 discard_userdata_options)
Set optimization related options for discarding user data.
foxit::addon::optimization::ImageSettings::operator=
ImageSettings & operator=(const ImageSettings &other)
Assign operator.
foxit::addon::optimization::ImageSettings::ImageCompressQuality
ImageCompressQuality
Enumeration for loss compression quality used for color or gray image.
Definition: fs_optimization.h:120
foxit::addon::optimization::MonoImageSettings::operator==
bool operator==(const MonoImageSettings &other) const
Equal operator.
foxit::addon::optimization::OptimizerSettings::operator=
OptimizerSettings & operator=(const OptimizerSettings &other)
Assign operator.
foxit::uint32
FX_UINT32 uint32
32-bit unsigned integer.
Definition: fs_basictypes.h:196
foxit::addon::optimization::OptimizerSettings::IsEmpty
bool IsEmpty() const
Check whether current object is empty or not.
foxit::Base
Definition: fs_basictypes.h:427
foxit::addon::optimization::OptimizerSettings::e_OptimizerDiscardUserData
Optimize PDF document by discarding user data.
Definition: fs_optimization.h:622
foxit::addon::optimization::OptimizerSettings::CleanUpOptions
CleanUpOptions
Enumeration for cleaning up options.
Definition: fs_optimization.h:630
foxit::addon::optimization::MonoImageSettings::SetStretchMode
void SetStretchMode(StretchMode mode)
Set stretch mode used for optimizing monochrome images in a PDF document.
foxit::addon::optimization::OptimizerSettings::e_DiscardUserDataExternalCrossReferences
Discard external cross references.
Definition: fs_optimization.h:687