Foxit PDF SDK
fs_optimization.h
浏览该文件的文档.
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;
40 
42 class AuditSpaceSize FS_FINAL : public Object{
43  public:
46  : content_streams(0)
47  , images(0)
48  , fonts(0)
49  , bookmarks(0)
50  , x_object_forms(0)
51  , structure_infos(0)
52  , acroforms(0)
53  , link_annots(0)
55  , color_space(0)
56  , pattern_infos(0)
57  , piece_infos(0)
61  , cross_ref_tables(0)
62  , thumbs(0)
63  , embed_files(0)
64  , web_infos(0) { }
65 
75  images = data.images;
76  fonts = data.fonts;
77  bookmarks = data.bookmarks;
81  acroforms = data.acroforms;
82  link_annots = data.link_annots;
83  color_space = data.color_space;
85  piece_infos = data.piece_infos;
90  thumbs = data.thumbs;
91  embed_files = data.embed_files;
92  web_infos = data.web_infos;
93  return (*this);
94  }
95 
102 
109 
116 
123 
130 
137 
144 
151 
158 
165 
172 
179 
186 
193 
200 
207 
214 
221 
228 };
229 
235  public:
241  virtual void Release() = 0;
242 
252 
253  protected:
255 };
256 
264 class Optimizer FS_FINAL : public Base {
265  public:
284  static common::Progressive Optimize(const pdf::PDFDoc& doc,const OptimizerSettings& settings,common::PauseCallback* pause);
285 
305 
326  static common::Progressive OptimizeScannedPDF(const pdf::PDFDoc& doc, const OptimizeScannedPDFSettings& settings, ImageCompressionCallback* image_compress_callback, common::PauseCallback* pause);
327 
335  static AuditSpaceSize ComputeAuditSpace(const pdf::PDFDoc& doc);
336 };
337 
344 class ImageSettings FS_FINAL : public Base {
345  public:
351  typedef enum _ImageCompressMode {
363 
369  typedef enum _ImageCompressQuality {
383 
389  typedef enum _StretchMode {
393  e_StretchOff = 0x00,
402  } StretchMode;
403 
411  ImageSettings();
412 
413  // 强烈建议用户不要使用此方法;否则可能出现未知情况。
414  explicit ImageSettings(FS_HANDLE handle);
415 
417  ~ImageSettings();
418 
424  ImageSettings(const ImageSettings& other);
425 
433  ImageSettings& operator = (const ImageSettings& other);
441  bool operator == (const ImageSettings& other) const;
442 
450  bool operator != (const ImageSettings& other) const;
451 
459  bool IsEmpty() const;
460 
472  void SetStretchMode(StretchMode mode);
473 
485  void SetImageDPI(int32 dpi);
486 
504  void SetImageDPILimit(int dpi_limit);
505 
518 
531  void SetQuality(ImageCompressQuality quality);
532 
545  void SetBackgroundDownScale(int32 down_scale);
546 
559  void SetForegroundDownScale(int32 down_scale);
560 
576  void SetTextSensitivity(int32 text_sensitivity);
577 
590  void SetTileSize(int size);
591 };
592 
599 class MonoImageSettings FS_FINAL : public Base {
600  public:
606  typedef enum _MonoImageCompressMode {
622 
628  typedef enum _MonoImageCompressQuality {
644 
650  typedef enum _StretchMode {
654  e_StretchOff = 0x00,
663  } StretchMode;
664 
673 
674  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
675  explicit MonoImageSettings(FS_HANDLE handle);
676 
679 
685  MonoImageSettings(const MonoImageSettings& other);
686 
702  bool operator == (const MonoImageSettings& other) const;
703 
711  bool operator != (const MonoImageSettings& other) const;
712 
720  bool IsEmpty() const;
721 
733  void SetImageDPI(int32 dpi);
734 
752  void SetImageDPILimit(int dpi_limit);
753 
766 
778  void SetStretchMode(StretchMode mode) ;
779 
793  void SetQuality(MonoImageCompressQuality quality);
794 };
795 
802 class UnembeddedFontSettings FS_FINAL : public Base {
803  public:
808 
809  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
810  explicit UnembeddedFontSettings(FS_HANDLE handle);
811 
814 
821 
830 
838  bool operator==(const UnembeddedFontSettings& other) const;
839 
847  bool operator!=(const UnembeddedFontSettings& other) const;
848 
856  bool IsEmpty() const;
857 
866  void SetSubsetAllEmFonts(bool bSubsetAllEmFonts);
867 
880  void SetUnembeddedFontNameArray(const WStringArray& font_name_array);
881 };
882 
888 class OptimizerSettings FS_FINAL : public Base {
889  public:
895  typedef enum _OptimizerOptions {
907 
913  typedef enum _CleanUpOptions {
926  } CleanUpOptions;
927 
933  typedef enum _DiscardObjectsOptions {
968 
974  typedef enum _DiscardUserDataOptions {
990 
996  typedef enum _TransparencyMode {
1027  } TransparencyMode;
1028 
1029 
1037  OptimizerSettings();
1038 
1039  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
1040  explicit OptimizerSettings(FS_HANDLE handle);
1041 
1044 
1050  OptimizerSettings(const OptimizerSettings& other);
1051 
1060 
1068  bool operator == (const OptimizerSettings& other) const;
1069 
1077  bool operator != (const OptimizerSettings& other) const;
1078 
1086  bool IsEmpty() const;
1087 
1101  void SetOptimizerOptions(uint32 optimize_options);
1102 
1124  void SetColorGrayImageSettings(const ImageSettings& settings);
1125 
1140  void SetColorImageSettings(const ImageSettings& settings);
1141 
1156  void SetGrayscaleImageSettings(const ImageSettings& settings);
1157 
1172  void SetMonoImageSettings(const MonoImageSettings& settings);
1173 
1187  void SetUnembeddedFontSettings(const UnembeddedFontSettings& settings);
1188 
1205  void SetCleanUpOptions(foxit::uint32 clean_up_options);
1206 
1223  void SetDiscardObjectsOptions(foxit::uint32 discard_objects_options);
1224 
1241  void SetDiscardUserDataOptions(foxit::uint32 discard_userdata_options);
1242 
1258  void SetTransparencyMode(TransparencyMode transparency_mode);
1259 };
1260 
1266 class OptimizeScannedPDFSettings FS_FINAL : public Base{
1267  public:
1273  typedef enum _ScannedImageCompressMode {
1283 
1289  typedef enum _ScannedMonoImageCompressMode {
1299 
1300 
1302 
1303  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
1304  explicit OptimizeScannedPDFSettings(FS_HANDLE handle);
1305 
1308 
1315 
1331  bool operator == (const OptimizeScannedPDFSettings& other) const;
1332 
1340  bool operator != (const OptimizeScannedPDFSettings& other) const;
1341 
1349  bool IsEmpty() const;
1350 
1360  void SetOptimizedPages(const common::Range& pages);
1361 
1374 
1388 
1401 };
1402 
1403 } // namespace optimization
1404 } // namespace addon
1405 } // namespace foxit
1406 
1407 #endif
压缩模式:ZIP。
Definition: fs_optimization.h:620
压缩模式:CCITT Group 4。
Definition: fs_optimization.h:610
void SetColorImageSettings(const ImageSettings &settings)
设置彩色图像的优化相关设置。
透明度模式: 高分辨率。
Definition: fs_optimization.h:1026
压缩质量:低。
Definition: fs_optimization.h:373
bool IsEmpty() const
检查当前对象是否为空。
ScannedMonoImageCompressMode
用于单色图像的压缩模式枚举。
Definition: fs_optimization.h:1289
压缩质量:中等,仅适用于e_ImageCompressHigh压缩模式。
Definition: fs_optimization.h:638
MonoImageCompressMode
用于单色图像的压缩模式枚举。
Definition: fs_optimization.h:606
Definition: fs_common.h:1364
压缩质量:高,仅适用于e_ImageCompressHigh压缩模式。
Definition: fs_optimization.h:640
Definition: fs_image.h:36
丢弃未引用的命名目标。
Definition: fs_optimization.h:923
void SetCompressionMode(MonoImageCompressMode mode)
设置用于优化PDF文档中单色图像的压缩模式。
压缩模式:ZIP。
Definition: fs_optimization.h:361
void SetColorGrayImageCompressionMode(ScannedImageCompressMode mode)
设置用于优化扫描PDF文档中彩色/灰度图像的压缩模式。
CFX_Object Object
对象类型。
Definition: fs_basictypes.h:221
当设置此值时,表示拉伸时不进行任何插值。
Definition: fs_optimization.h:401
使用Flate编码未编码的流。
Definition: fs_optimization.h:915
通过丢弃用户数据来优化PDF文档。
Definition: fs_optimization.h:905
压缩模式:JPEG2000有损。
Definition: fs_optimization.h:1281
PDF文档相关定义和类的头文件。
void SetSubsetAllEmFonts(bool bSubsetAllEmFonts)
设置是否包括所有非嵌入字体的子集。
uint32 acroforms
AcroForm数据的总大小(以字节为单位)。
Definition: fs_optimization.h:143
void SetOptimizedPages(const common::Range &pages)
设置要优化的页面。
压缩模式:JPEG2000无损。
Definition: fs_optimization.h:1279
压缩模式:CCITT Group 3。
Definition: fs_optimization.h:608
Definition: fs_basictypes.h:228
void SetStretchMode(StretchMode mode)
设置用于优化PDF文档中单色图像的拉伸模式。
丢弃嵌入的打印设置。
Definition: fs_optimization.h:947
丢弃隐藏图层内容并扁平化可见图层。
Definition: fs_optimization.h:986
压缩模式:JBIG2有损。
Definition: fs_optimization.h:1291
丢弃文件附件。
Definition: fs_optimization.h:982
uint32 color_space
颜色空间定义的总大小(以字节为单位)。
Definition: fs_optimization.h:164
void SetTransparencyMode(TransparencyMode transparency_mode)
设置优化透明度模式。
void SetUnembeddedFontSettings(const UnembeddedFontSettings &settings)
设置取消嵌入字体的优化相关设置。
检测并合并图像片段。
Definition: fs_optimization.h:964
static common::Progressive Optimize(const pdf::PDFDoc &doc, const OptimizerSettings &settings, common::PauseCallback *pause)
使用指定的优化器设置优化给定的PDF文档。
AuditSpaceSize & operator=(const AuditSpaceSize &data)
赋值操作符。
Definition: fs_optimization.h:73
uint32 embed_files
嵌入文件流的总大小(以字节为单位)。
Definition: fs_optimization.h:220
uint32 bookmarks
书签数据的总大小(以字节为单位)。
Definition: fs_optimization.h:122
uint32 extend_graphics_states
扩展图形状态的总大小(以字节为单位)。
Definition: fs_optimization.h:199
bool operator==(const MonoImageSettings &other) const
相等操作符。
丢弃所有表单提交、导入和重置操作。
Definition: fs_optimization.h:935
压缩质量:无损。
Definition: fs_optimization.h:630
uint32 images
嵌入图像的总大小(以字节为单位)。
Definition: fs_optimization.h:108
OptimizerSettings & operator=(const OptimizerSettings &other)
赋值操作符。
Definition: fs_optimization.h:264
bool operator!=(const UnembeddedFontSettings &other) const
不等操作符。
uint32 comments_and_3d_contents
注释和3D内容的总大小(以字节为单位)。
Definition: fs_optimization.h:185
void SetDiscardObjectsOptions(foxit::uint32 discard_objects_options)
设置丢弃对象的优化相关选项。
bool operator==(const OptimizerSettings &other) const
相等操作符。
当设置此值时,表示进行默认拉伸。
Definition: fs_optimization.h:391
当设置此值时,表示在缩小或旋转时不进行半色调处理。
Definition: fs_optimization.h:658
当设置此值时,表示进行缩放插值。
Definition: fs_optimization.h:395
Definition: fs_pdfdoc.h:771
DiscardUserDataOptions
丢弃用户数据选项的枚举。
Definition: fs_optimization.h:974
Definition: fs_optimization.h:344
压缩模式:高压缩。
Definition: fs_optimization.h:612
压缩模式:高压缩。
Definition: fs_optimization.h:1297
压缩模式:JPEG2000。
Definition: fs_optimization.h:357
丢弃所有JavaScript操作。
Definition: fs_optimization.h:943
bool operator==(const ImageSettings &other) const
等于操作符。
扁平化表单字段。
Definition: fs_optimization.h:937
丢弃标签用户数据。
Definition: fs_optimization.h:988
void SetColorGrayImageSettings(const ImageSettings &settings)
设置彩色/灰度图像的优化相关设置。
void SetDiscardUserDataOptions(foxit::uint32 discard_userdata_options)
设置丢弃用户数据的优化相关选项。
当设置此值时,表示进行双三次插值缩放。
Definition: fs_optimization.h:660
void SetImageDPILimit(int dpi_limit)
设置单色图像的下限DPI值,以决定是否压缩PDF文档中的图像。
通过取消嵌入某些嵌入字体来优化PDF文档。
Definition: fs_optimization.h:903
uint32 piece_infos
片段信息的总大小(以字节为单位)。
Definition: fs_optimization.h:178
bool IsEmpty() const
检查当前对象是否为空。
丢弃外部交叉引用。
Definition: fs_optimization.h:978
当设置此值时,表示进行双三次插值缩放。
Definition: fs_optimization.h:399
当设置此值时,表示进行缩放插值。
Definition: fs_optimization.h:656
压缩质量:无损,仅适用于JPEG2000压缩模式。
Definition: fs_optimization.h:381
void SetStretchMode(StretchMode mode)
设置用于优化PDF文档中彩色/灰度图像的拉伸模式。
bool IsEmpty() const
检查当前对象是否为空。
uint32 x_object_forms
XObject表单的总大小(以字节为单位)。
Definition: fs_optimization.h:129
压缩模式:保持原样,即不压缩。
Definition: fs_optimization.h:359
清理页面内容,将内容流中的0A、0D更改为空格。
Definition: fs_optimization.h:925
void SetImageDPILimit(int dpi_limit)
设置彩色/灰度图像的下限DPI值,以决定是否在PDF文档中压缩图像。
丢弃所有注释、表单和多媒体。
Definition: fs_optimization.h:976
DiscardObjectsOptions
丢弃对象选项的枚举。
Definition: fs_optimization.h:933
丢弃嵌入的页面缩略图。
Definition: fs_optimization.h:945
文件流接口,用于读取和写入。
Definition: fx_stream.h:692
void SetForegroundDownScale(int32 down_scale)
设置有损压缩模式的前景降采样值,用于优化PDF文档中的彩色图像。
压缩质量:最小。
Definition: fs_optimization.h:371
压缩质量:最小,仅适用于e_ImageCompressHigh压缩模式。
Definition: fs_optimization.h:634
bool operator !=(const ImageSettings &other) const
不等于操作符。
OptimizeScannedPDFSettings & operator=(const OptimizeScannedPDFSettings &other)
赋值操作符。
void SetColorGrayImageCompressionQuality(foxit::uint32 quality)
设置有损压缩模式的质量,用于优化扫描PDF文档中的彩色/灰度图像。
bool operator==(const UnembeddedFontSettings &other) const
相等操作符。
void SetMonoImageCompressionMode(ScannedMonoImageCompressMode mode)
设置用于优化扫描PDF文档中单色图像的压缩模式。
通过压缩图像来优化PDF文档。
Definition: fs_optimization.h:897
压缩模式:保持原样,即不压缩。
Definition: fs_optimization.h:616
审计空间大小的结构,单位为字节类型。
Definition: fs_optimization.h:42
Definition: fx_basic.h:3737
Definition: fs_optimization.h:599
StretchMode
拉伸模式的枚举。
Definition: fs_optimization.h:650
bool operator !=(const OptimizerSettings &other) const
不等操作符。
OptimizerOptions
优化器选项的枚举。
Definition: fs_optimization.h:895
uint32 content_streams
所有页面内容流的总大小(以字节为单位)。
Definition: fs_optimization.h:101
Definition: fs_common.h:373
ScannedImageCompressMode
用于彩色或灰度图像的压缩模式枚举。
Definition: fs_optimization.h:1273
通过丢弃对象来优化PDF文档。
Definition: fs_optimization.h:901
压缩模式:高压缩。
Definition: fs_optimization.h:1275
uint32 web_infos
Web相关元数据的总大小(以字节为单位)。
Definition: fs_optimization.h:227
压缩模式:JPEG。
Definition: fs_optimization.h:1277
FX_UINT32 uint32
无符号 32 位整数。
Definition: fs_basictypes.h:196
透明度模式: 低分辨率。
Definition: fs_optimization.h:1006
void SetTextSensitivity(int32 text_sensitivity)
设置有损压缩模式的文本敏感度,用于优化PDF文档中的彩色图像。
void SetImageDPI(int32 dpi)
设置DPI值作为压缩PDF文档中彩色/灰度图像的目标压缩值。
将直线平滑为曲线。
Definition: fs_optimization.h:966
void * FS_HANDLE
句柄类型。
Definition: fs_basictypes.h:214
当设置此值时,表示拉伸时不进行任何插值。
Definition: fs_optimization.h:662
uint32 link_annots
链接注释的总大小(以字节为单位)。
Definition: fs_optimization.h:150
压缩质量:有损。
Definition: fs_optimization.h:632
通用定义和类的头文件。
static AuditSpaceSize ComputeAuditSpace(const pdf::PDFDoc &doc)
计算审计空间。
ImageSettings & operator=(const ImageSettings &other)
赋值操作符。
压缩模式:JPEG。
Definition: fs_optimization.h:355
通过清理来优化PDF文档。
Definition: fs_optimization.h:899
在使用LZW编码的流中,改用Flate。
Definition: fs_optimization.h:917
void SetOptimizerOptions(uint32 optimize_options)
设置选项以决定用于优化PDF文档的优化器设置类型。
bool IsEmpty() const
检查当前对象是否为空。
virtual common::file::StreamCallback * GetTemporaryFileStream(const common::Bitmap &bitmap)=0
获取临时文件流。该文件流用于临时保存JPEG2000和JBIG2的编码结果。
uint32 fonts
嵌入字体的总大小(以字节为单位)。
Definition: fs_optimization.h:115
bool operator==(const OptimizeScannedPDFSettings &other) const
相等操作符。
ImageCompressQuality
用于彩色或灰度图像的有损压缩质量枚举。
Definition: fs_optimization.h:369
void SetCompressionMode(ImageCompressMode mode)
设置用于优化PDF文档中彩色/灰度图像的压缩模式。
删除无效的书签。
Definition: fs_optimization.h:919
丢弃其他应用程序的私有数据。
Definition: fs_optimization.h:984
压缩质量:低,仅适用于e_ImageCompressHigh压缩模式。
Definition: fs_optimization.h:636
压缩质量:中等。
Definition: fs_optimization.h:375
FX_INT32 int32
有符号 32 位整数。
Definition: fs_basictypes.h:194
Definition: fs_basictypes.h:449
void SetBackgroundDownScale(int32 down_scale)
设置有损压缩模式的背景降采样值,用于优化PDF文档中的彩色图像。
void SetMonoImageSettings(const MonoImageSettings &settings)
设置单色图像的优化相关设置。
压缩质量:高。
Definition: fs_optimization.h:377
PDF页面相关定义和类的头文件。
AuditSpaceSize()
构造函数。
Definition: fs_optimization.h:45
uint32 pattern_infos
图案对象的总大小(以字节为单位)。
Definition: fs_optimization.h:171
static common::Progressive StartSubsetEmbedFont(const pdf::PDFDoc &doc, common::PauseCallback *pause)
开始为给定PDF文档中的嵌入字体制作子集。
void SetUnembeddedFontNameArray(const WStringArray &font_name_array)
设置字体名称数组以指定要取消嵌入的字体。
透明度模式: 中分辨率。
Definition: fs_optimization.h:1016
MonoImageCompressQuality
用于单色图像的压缩质量枚举。
Definition: fs_optimization.h:628
当设置此值时,表示不进行拉伸。
Definition: fs_optimization.h:654
Foxit命名空间。
Definition: fs_taggedpdf.h:27
void SetGrayscaleImageSettings(const ImageSettings &settings)
设置灰度图像的优化相关设置。
bool operator !=(const MonoImageSettings &other) const
不等操作符。
StretchMode
拉伸模式的枚举。
Definition: fs_optimization.h:389
当设置此值时,表示进行默认拉伸。
Definition: fs_optimization.h:652
Definition: fs_optimization.h:888
当设置此值时,表示在缩小或旋转时不进行半色调处理。
Definition: fs_optimization.h:397
void SetImageDPI(int32 dpi)
设置DPI值作为压缩PDF文档中单色图像的目标压缩值。
压缩质量:最大。
Definition: fs_optimization.h:379
uint32 named_destnations
命名目标的总大小(以字节为单位)。
Definition: fs_optimization.h:157
void SetCleanUpOptions(foxit::uint32 clean_up_options)
设置清理的优化相关选项。
压缩模式:JBIG2。
Definition: fs_optimization.h:614
static common::Progressive OptimizeScannedPDF(const pdf::PDFDoc &doc, const OptimizeScannedPDFSettings &settings, ImageCompressionCallback *image_compress_callback, common::PauseCallback *pause)
使用指定的优化器设置优化扫描的PDF文档。
丢弃书签。
Definition: fs_optimization.h:949
void SetTileSize(int size)
设置JPEG2000压缩模式的瓦片大小,用于优化PDF文档中的彩色/灰度图像。
uint32 shading_pattern_infos
着色图案信息的总大小(以字节为单位)。
Definition: fs_optimization.h:192
ImageCompressMode
用于彩色或灰度图像的压缩模式枚举。
Definition: fs_optimization.h:351
压缩模式:CCITT Group 4。
Definition: fs_optimization.h:1295
当设置此值时,表示不进行拉伸。
Definition: fs_optimization.h:393
丢弃文档信息和元数据。
Definition: fs_optimization.h:980
丢弃文档标签。
Definition: fs_optimization.h:960
uint32 thumbs
页面缩略图的总大小(以字节为单位)。
Definition: fs_optimization.h:213
MonoImageSettings & operator=(const MonoImageSettings &other)
赋值操作符。
压缩模式:行程编码。
Definition: fs_optimization.h:618
virtual void Release()=0
用于释放当前回调对象本身的回调函数。
丢弃所有替代图像。
Definition: fs_optimization.h:958
void SetQuality(MonoImageCompressQuality quality)
设置压缩质量,用于优化PDF文档中的单色图像。
bool IsEmpty() const
检查当前对象是否为空。
uint32 structure_infos
结构信息的总大小(以字节为单位)。
Definition: fs_optimization.h:136
uint32 cross_ref_tables
交叉引用表的总大小(以字节为单位)。
Definition: fs_optimization.h:206
CleanUpOptions
清理选项的枚举。
Definition: fs_optimization.h:913
UnembeddedFontSettings & operator=(const UnembeddedFontSettings &other)
赋值操作符。
void SetQuality(ImageCompressQuality quality)
设置有损压缩模式的质量,用于优化PDF文档中的彩色/灰度图像。
删除无效的链接。
Definition: fs_optimization.h:921
压缩质量:最大,仅适用于e_ImageCompressHigh压缩模式。
Definition: fs_optimization.h:642
丢弃嵌入的搜索索引。
Definition: fs_optimization.h:962
TransparencyMode
透明度模式的枚举。
Definition: fs_optimization.h:996
压缩模式:高压缩。
Definition: fs_optimization.h:353
bool operator !=(const OptimizeScannedPDFSettings &other) const
不等操作符。