Foxit PDF SDK
fs_ofdwatermark.h
1 #ifndef FS_OFD_WATERMARK_H_
2 #define FS_OFD_WATERMARK_H_
3 
4 #include "common/fs_common.h"
5 
11 namespace foxit {
15 namespace ofd {
16 class OFDPage;
17 
19 class TextProperties FS_FINAL : public Object {
20  public:
31  text(text),
36 
42  TextProperties(const TextProperties& settings) {
43  this->text = settings.text;
44  this->font_name = settings.font_name;
45  this->font_size = settings.font_size;
46  this->char_space = settings.char_space;
47  this->text_color = settings.text_color;
48  }
49 
58  this->text = settings.text;
59  this->font_name = settings.font_name;
60  this->font_size = settings.font_size;
61  this->char_space = settings.char_space;
62  this->text_color = settings.text_color;
63  return *this;
64  }
65 
77  void Set(const String& text, const String& font_name, float font_size, float char_space, foxit::RGB text_color) {
78  this->text = text;
79  this->font_name = font_name;
80  this->font_size = font_size;
81  this->char_space = char_space;
82  this->text_color = text_color;
83  }
84 
92  bool IsValid() const {
93  return !text.IsEmpty() && !font_name.IsEmpty() && font_size > 0;
94  }
95 
101 
107 
112  float font_size;
113 
118  float char_space;
119 
125 };
126 
128 class ImageProperties FS_FINAL : public Object {
129  public:
136  : image_id(image_id) {}
137 
143  ImageProperties(const ImageProperties& settings) {
144  this->image_id = settings.image_id;
145  }
146 
155  this->image_id = settings.image_id;
156  return *this;
157  }
158 
167  this->image_id = image_id;
168  }
169 
177  bool IsValid() const {
178  return image_id != 0;
179  }
180 
186 };
187 
190  public:
201  explicit BaseWatermarkSettings(float width, float height, float rotation, foxit::uint8 opacity, bool visible = true, bool printable = true) :
202  width(width),
203  height(height),
205  opacity(opacity),
206  visible(visible),
207  printable(printable) {}
208 
215  this->width = settings.width;
216  this->height = settings.height;
217  this->rotation = settings.rotation;
218  this->opacity = settings.opacity;
219  this->visible = settings.visible;
220  this->printable = settings.printable;
221  }
222 
231  this->width = settings.width;
232  this->height = settings.height;
233  this->rotation = settings.rotation;
234  this->opacity = settings.opacity;
235  this->visible = settings.visible;
236  this->printable = settings.printable;
237  return *this;
238  }
239 
252  void Set(float width, float height, float rotation, foxit::uint8 opacity, bool visible = true, bool printable = true) {
253  this->width = width;
254  this->height = height;
255  this->rotation = rotation;
256  this->opacity = opacity;
257  this->visible = visible;
258  this->printable = printable;
259  }
260 
268  virtual bool IsValid() const {
269  return width > 0.0f && height > 0.0f && opacity >= 0 && opacity <= 255 && rotation >= 0.0f && rotation < 360.0f;
270  }
271 
276  float width;
277 
282  float height;
283 
288  float rotation;
289 
295 
300  bool visible;
301 
306  bool printable;
307 };
308 
311  public:
324  explicit WatermarkSettings(float x_pos, float y_pos, float width, float height, float rotation, foxit::uint8 opacity, bool visible = true, bool printable = true) :
325  x_pos(x_pos),
326  y_pos(y_pos),
328 
335  BaseWatermarkSettings(settings) {
336  this->x_pos = settings.x_pos;
337  this->y_pos = settings.y_pos;
338  }
339 
348  this->x_pos = settings.x_pos;
349  this->y_pos = settings.y_pos;
350  this->width = settings.width;
351  this->height = settings.height;
352  this->rotation = settings.rotation;
353  this->opacity = settings.opacity;
354  this->visible = settings.visible;
355  this->printable = settings.printable;
356  return *this;
357  }
358 
373  void Set(float x_pos, float y_pos, float width, float height, float rotation, foxit::uint8 opacity, bool visible = true, bool printable = true) {
374  this->x_pos = x_pos;
375  this->y_pos = y_pos;
376  this->width = width;
377  this->height = height;
378  this->rotation = rotation;
379  this->opacity = opacity;
380  this->visible = visible;
381  this->printable = printable;
382  }
383 
391  virtual bool IsValid() const {
393  }
394 
399  float x_pos;
400 
405  float y_pos;
406 };
407 
410  public:
416  typedef enum _WatermarkHAlign {
423  } WatermarkHAlign;
424 
430  typedef enum _WatermarkVAlign {
437  } WatermarkVAlign;
438 
439 
454  bool visible = true, bool printable = true) :
455  h_align(h_align),
456  v_align(v_align),
458 
465  BaseWatermarkSettings(settings) {
466  this->h_align = settings.h_align;
467  this->v_align = settings.v_align;
468  }
469 
478  this->h_align = settings.h_align;
479  this->v_align = settings.v_align;
480  this->width = settings.width;
481  this->height = settings.height;
482  this->rotation = settings.rotation;
483  this->opacity = settings.opacity;
484  this->visible = settings.visible;
485  this->printable = settings.printable;
486  return *this;
487  }
488 
506  bool visible = true, bool printable = true) {
507  this->h_align = h_align;
508  this->v_align = v_align;
509  this->width = width;
510  this->height = height;
511  this->rotation = rotation;
512  this->opacity = opacity;
513  this->visible = visible;
514  this->printable = printable;
515  }
516 
524  virtual bool IsValid() const {
526  }
527 
534 
541 };
542 
544 class TiledWatermarkSettings FS_FINAL : public WatermarkSettings {
545  public:
559  explicit TiledWatermarkSettings(float x_pos, float y_pos, float width, float height, float rotation, foxit::uint8 opacity,
560  float x_step, float y_step, bool visible = true, bool printable = true) :
561  x_step(x_step),
562  y_step(y_step),
564 
571  WatermarkSettings(settings) {
572  this->x_step = settings.x_step;
573  this->y_step = settings.y_step;
574  }
575 
584  this->x_step = settings.x_step;
585  this->y_step = settings.y_step;
586  this->x_pos = settings.x_pos;
587  this->y_pos = settings.y_pos;
588  this->width = settings.width;
589  this->height = settings.height;
590  this->rotation = settings.rotation;
591  this->opacity = settings.opacity;
592  this->visible = settings.visible;
593  this->printable = settings.printable;
594  return *this;
595  }
596 
613  void Set(float x_pos, float y_pos, float width, float height, float rotation, foxit::uint8 opacity,
614  float x_step, float y_step, bool visible = true, bool printable = true) {
615  this->x_pos = x_pos;
616  this->y_pos = y_pos;
617  this->width = width;
618  this->height = height;
619  this->rotation = rotation;
620  this->opacity = opacity;
621  this->visible = visible;
622  this->printable = printable;
623  this->x_step = x_step;
624  this->y_step = y_step;
625  }
626 
634  virtual bool IsValid() const {
635  return WatermarkSettings::IsValid() && x_step > 0 && y_step > 0;
636  }
637 
642  float x_step;
643 
648  float y_step;
649 };
650 
652 class Watermark FS_FINAL : public Base {
653  public:
659  explicit Watermark(OFDPage page);
660 
662  ~Watermark();
663 
669  Watermark(const Watermark& other);
670 
677  Watermark& operator = (const Watermark& other);
678 
686  bool operator == (const Watermark& other) const;
687 
695  bool operator != (const Watermark& other) const;
696 
705  bool AddTextWatermark(const TextProperties& properties, const WatermarkSettings& settings);
706 
715  bool AddAlignTextWatermark(const TextProperties& properties, const AlignmentWatermarkSettings& settings);
716 
725  bool AddTiledTextWatermark(const TextProperties& properties, const TiledWatermarkSettings& settings);
726 
735  bool AddImageWatermark(const ImageProperties& properties, const WatermarkSettings& settings);
736 
745  bool AddAlignImageWatermark(const ImageProperties& properties, const AlignmentWatermarkSettings& settings);
746 
755  bool AddTiledImageWatermark(const ImageProperties& properties, const TiledWatermarkSettings& settings);
756 
765  bool AddRegionTextWatermark(foxit::RectF region, const TextProperties& properties, const TiledWatermarkSettings& settings);
766 
775  bool AddRegionImageWatermark(foxit::RectF region, const ImageProperties& properties, const TiledWatermarkSettings& settings);
776 
786  bool AddMultiAreaTextWatermark(int h_layout_num, int v_layout_num, const TextProperties& properties, const WatermarkSettings& settings);
787 
797  bool AddMultiAreaImageWatermark(int h_layout_num, int v_layout_num, const ImageProperties& properties, const WatermarkSettings& settings);
798 
799  explicit Watermark(FS_HANDLE handle);
800 };
801 
802 } // namespace ofd
803 } // namespace foxit
804 
805 #endif // FS_OFD_WATERMARK_H_
WatermarkVAlign v_align
水印垂直对齐方式。请参考从 foxit::ofd::AlignmentWatermarkSettings::e_WatermarkVAlignTop 开始的值, 这应该是这些值中的一个。
Definition: fs_ofdwatermark.h:540
virtual bool IsValid() const
检查当前对象是否有效。
Definition: fs_ofdwatermark.h:634
virtual bool IsValid() const
检查当前对象是否有效。
Definition: fs_ofdwatermark.h:268
foxit::uint32 image_id
图片资源ID。
Definition: fs_ofdwatermark.h:185
void Set(float x_pos, float y_pos, float width, float height, float rotation, foxit::uint8 opacity, float x_step, float y_step, bool visible=true, bool printable=true)
设置值。
Definition: fs_ofdwatermark.h:613
void Set(foxit::uint32 image_id)
设置值。
Definition: fs_ofdwatermark.h:166
virtual bool IsValid() const
检查当前对象是否有效。
Definition: fs_ofdwatermark.h:391
CFX_Object Object
对象类型。
Definition: fs_basictypes.h:220
Definition: fs_ofdwatermark.h:128
WatermarkSettings(const WatermarkSettings &settings)
构造函数,通过另一个水印位置属性对象。
Definition: fs_ofdwatermark.h:334
Definition: fs_ofdwatermark.h:19
WatermarkVAlign
OFD水印垂直对齐方式定义枚举类型.
Definition: fs_ofdwatermark.h:430
FX_UINT8 uint8
无符号 8 位整数。
Definition: fs_basictypes.h:203
bool printable
水印是否可打印。
Definition: fs_ofdwatermark.h:306
Definition: fs_ofdwatermark.h:544
uint32 RGB
RGB 颜色类型,24 位,((b) | ((g) << 8) | ((r) << 16)))
Definition: fs_basictypes.h:211
水平对齐方式:左对齐。
Definition: fs_ofdwatermark.h:418
bool AddMultiAreaImageWatermark(int h_layout_num, int v_layout_num, const ImageProperties &properties, const WatermarkSettings &settings)
添加多区域图片水印。
ImageProperties(foxit::uint32 image_id)
带参数的构造函数。
Definition: fs_ofdwatermark.h:135
BaseWatermarkSettings(float width, float height, float rotation, foxit::uint8 opacity, bool visible=true, bool printable=true)
带参数的构造函数。
Definition: fs_ofdwatermark.h:201
void Set(float width, float height, float rotation, foxit::uint8 opacity, bool visible=true, bool printable=true)
设置值。
Definition: fs_ofdwatermark.h:252
String text
水印文本内容。
Definition: fs_ofdwatermark.h:100
float y_pos
水印Y坐标,单位为毫米。
Definition: fs_ofdwatermark.h:405
virtual bool IsValid() const
检查当前对象是否有效。
Definition: fs_ofdwatermark.h:524
bool operator !=(const Watermark &other) const
不等操作符。
bool IsValid() const
检查当前对象是否有效。
Definition: fs_ofdwatermark.h:177
bool AddTextWatermark(const TextProperties &properties, const WatermarkSettings &settings)
添加文字水印。
bool AddRegionTextWatermark(foxit::RectF region, const TextProperties &properties, const TiledWatermarkSettings &settings)
添加区域平铺文字水印。
foxit::RGB text_color
水印文本颜色。
Definition: fs_ofdwatermark.h:124
bool AddTiledTextWatermark(const TextProperties &properties, const TiledWatermarkSettings &settings)
添加平铺文字水印。
bool AddRegionImageWatermark(foxit::RectF region, const ImageProperties &properties, const TiledWatermarkSettings &settings)
添加区域平铺图片水印。
float width
水印宽度,单位为毫米。
Definition: fs_ofdwatermark.h:276
Watermark(OFDPage page)
带参数的构造函数。
bool operator==(const Watermark &other) const
相等操作符。
void Set(float x_pos, float y_pos, float width, float height, float rotation, foxit::uint8 opacity, bool visible=true, bool printable=true)
设置值。
Definition: fs_ofdwatermark.h:373
void Set(const String &text, const String &font_name, float font_size, float char_space, foxit::RGB text_color)
设置值。
Definition: fs_ofdwatermark.h:77
bool IsEmpty() const
检查当前字符串对象是否为空。
Definition: fx_string.h:409
AlignmentWatermarkSettings(WatermarkHAlign h_align, WatermarkVAlign v_align, float width, float height, float rotation, foxit::uint8 opacity, bool visible=true, bool printable=true)
带参数的构造函数。
Definition: fs_ofdwatermark.h:453
TextProperties & operator=(const TextProperties &settings)
赋值操作符。
Definition: fs_ofdwatermark.h:57
float height
水印高度,单位为毫米。
Definition: fs_ofdwatermark.h:282
TextProperties(const String &text, const String &font_name, float font_size, float char_space, foxit::RGB text_color)
带参数的构造函数。
Definition: fs_ofdwatermark.h:30
float char_space
水印文本字符间距。
Definition: fs_ofdwatermark.h:118
Definition: fs_ofdwatermark.h:652
TiledWatermarkSettings(const TiledWatermarkSettings &settings)
构造函数,通过另一个水印平铺属性对象。
Definition: fs_ofdwatermark.h:570
水平对齐方式:右对齐。
Definition: fs_ofdwatermark.h:422
FX_UINT32 uint32
无符号 32 位整数。
Definition: fs_basictypes.h:195
WatermarkSettings(float x_pos, float y_pos, float width, float height, float rotation, foxit::uint8 opacity, bool visible=true, bool printable=true)
带参数的构造函数。
Definition: fs_ofdwatermark.h:324
float rotation
水印顺时针旋转角度,范围为0-360。
Definition: fs_ofdwatermark.h:288
垂直对齐方式:下对齐。
Definition: fs_ofdwatermark.h:436
AlignmentWatermarkSettings(const AlignmentWatermarkSettings &settings)
构造函数,通过另一个水印对齐属性对象。
Definition: fs_ofdwatermark.h:464
void * FS_HANDLE
句柄类型。
Definition: fs_basictypes.h:213
通用定义和类的头文件。
float x_step
水印在X轴方向的平铺间距,单位为毫米。
Definition: fs_ofdwatermark.h:642
WatermarkHAlign h_align
水印水平对齐方式。请参考从 foxit::ofd::AlignmentWatermarkSettings::e_WatermarkHAlignLeft 开始的值, 这应该是这些值中的一个。
Definition: fs_ofdwatermark.h:533
WatermarkSettings & operator=(const WatermarkSettings &settings)
赋值操作符。
Definition: fs_ofdwatermark.h:347
垂直对齐方式:上对齐。
Definition: fs_ofdwatermark.h:432
ImageProperties & operator=(const ImageProperties &settings)
赋值操作符。
Definition: fs_ofdwatermark.h:154
Definition: fs_basictypes.h:465
ImageProperties(const ImageProperties &settings)
构造函数,通过另一个图片水印属性对象。
Definition: fs_ofdwatermark.h:143
TiledWatermarkSettings(float x_pos, float y_pos, float width, float height, float rotation, foxit::uint8 opacity, float x_step, float y_step, bool visible=true, bool printable=true)
带参数的构造函数。
Definition: fs_ofdwatermark.h:559
AlignmentWatermarkSettings & operator=(const AlignmentWatermarkSettings &settings)
赋值操作符。
Definition: fs_ofdwatermark.h:477
void Set(WatermarkHAlign h_align, WatermarkVAlign v_align, float width, float height, float rotation, foxit::uint8 opacity, bool visible=true, bool printable=true)
设置值。
Definition: fs_ofdwatermark.h:505
bool AddAlignTextWatermark(const TextProperties &properties, const AlignmentWatermarkSettings &settings)
添加对齐文字水印。
bool AddImageWatermark(const ImageProperties &properties, const WatermarkSettings &settings)
添加图片水印。
bool visible
水印是否可见。
Definition: fs_ofdwatermark.h:300
Definition: fs_ofdwatermark.h:189
Foxit命名空间。
Definition: fs_taggedpdf.h:27
Definition: fs_ofdwatermark.h:310
字节字符串类
Definition: fx_string.h:317
TiledWatermarkSettings & operator=(const TiledWatermarkSettings &settings)
赋值操作符。
Definition: fs_ofdwatermark.h:583
Definition: fs_ofdwatermark.h:409
String font_name
水印文本字体名称。
Definition: fs_ofdwatermark.h:106
Definition: fs_ofdpage.h:27
WatermarkHAlign
OFD水印水平对齐方式定义枚举类型.
Definition: fs_ofdwatermark.h:416
float y_step
水印在Y轴方向的平铺间距,单位为毫米。
Definition: fs_ofdwatermark.h:648
float font_size
水印文本字体大小,单位为毫米。
Definition: fs_ofdwatermark.h:112
bool AddTiledImageWatermark(const ImageProperties &properties, const TiledWatermarkSettings &settings)
添加平铺图片水印。
~Watermark()
析构函数。
BaseWatermarkSettings(const BaseWatermarkSettings &settings)
构造函数,通过另一个水印基本属性对象。
Definition: fs_ofdwatermark.h:214
bool AddMultiAreaTextWatermark(int h_layout_num, int v_layout_num, const TextProperties &properties, const WatermarkSettings &settings)
添加多区域文字水印。
foxit::uint8 opacity
水印透明度,范围为0-255,0表示完全透明,255表示不透明。
Definition: fs_ofdwatermark.h:294
bool AddAlignImageWatermark(const ImageProperties &properties, const AlignmentWatermarkSettings &settings)
添加对齐图片水印。
bool IsValid() const
检查当前对象是否有效。
Definition: fs_ofdwatermark.h:92
Watermark & operator=(const Watermark &other)
赋值操作符。
水平对齐方式:居中对齐。
Definition: fs_ofdwatermark.h:420
TextProperties(const TextProperties &settings)
构造函数,通过另一个文字水印属性对象。
Definition: fs_ofdwatermark.h:42
float x_pos
水印X坐标,单位为毫米。
Definition: fs_ofdwatermark.h:399
BaseWatermarkSettings & operator=(const BaseWatermarkSettings &settings)
赋值操作符。
Definition: fs_ofdwatermark.h:230
垂直对齐方式:居中对齐。
Definition: fs_ofdwatermark.h:434
Definition: fx_coordinates.h:771