Foxit PDF SDK
fs_watermark.h
浏览该文件的文档.
1 
15 #ifndef FS_WATERMARK_H_
16 #define FS_WATERMARK_H_
17 
18 #include "common/fs_common.h"
19 #include "common/fs_image.h"
20 #include "pdf/fs_pdfdoc.h"
21 
27 namespace foxit {
31 namespace pdf {
32 // forward declaration
33 class WatermarkSettings;
34 class WatermarkTextProperties;
35 
40 class Watermark FS_FINAL : public Base {
41  public:
51  explicit Watermark(const PDFDoc& document, const wchar_t* text, const WatermarkTextProperties& properties,
52  const WatermarkSettings& settings);
53 
61  explicit Watermark(const foxit::pdf::PDFDoc& document, const foxit::common::Bitmap& bitmap, const foxit::pdf::WatermarkSettings& settings);
62 
75  explicit Watermark(const foxit::pdf::PDFDoc& document, const foxit::common::Image& image, int frame_index,
76  const foxit::pdf::WatermarkSettings& settings);
77 
85  explicit Watermark(const foxit::pdf::PDFDoc& document, const foxit::pdf::PDFPage& page, const foxit::pdf::WatermarkSettings& settings);
86 
92  Watermark(const Watermark& other);
93 
101  Watermark& operator = (const Watermark& other);
102 
110  bool operator == (const Watermark& other) const;
118  bool operator != (const Watermark& other) const;
119 
121  ~Watermark();
122 
130  bool IsEmpty() const;
131 
139  float GetWidth() const;
140 
148  float GetHeight() const;
149 
164  bool InsertToPage(PDFPage page);
165 
166  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
167  explicit Watermark(FS_HANDLE handle = NULL);
168 };
169 
171 class WatermarkSettings FS_FINAL : public Object {
172  public:
179  typedef enum _Flags {
183  e_FlagASAnnot = 0x0001,
185  e_FlagOnTop = 0x0002,
187  e_FlagNoPrint = 0x0004,
189  e_FlagInvisible = 0x0008,
196  } Flags;
197 
198 
221  float scale_x, float scale_y, float rotation, int opacity, bool is_offset_centered,
222  float relative_scale_to_page)
223 
224  : position(position)
225  , offset_x(offset_x)
226  , offset_y(offset_y)
227  , flags(flags)
228  , scale_x(scale_x)
229  , scale_y(scale_y)
230  , rotation(rotation)
231  , opacity(opacity)
233  , relative_scale_to_page(relative_scale_to_page) {}
234 
237  : position(CommonDefines::e_PosTopLeft)
238  , offset_x(0)
239  , offset_y(0)
240  , flags(0)
241  , scale_x(1.0)
242  , scale_y(1.0)
243  , rotation(0)
244  , opacity(100)
245  , is_offset_centered(false)
246  , relative_scale_to_page(0) {}
247 
254  : position(settings.position)
255  , offset_x(settings.offset_x)
256  , offset_y(settings.offset_y)
257  , flags(settings.flags)
258  , scale_x(settings.scale_x)
259  , scale_y(settings.scale_y)
260  , rotation(settings.rotation)
261  , opacity(settings.opacity)
263  , relative_scale_to_page(settings.relative_scale_to_page) {}
264 
273  position = settings.position;
274  offset_x = settings.offset_x;
275  offset_y = settings.offset_y;
276  flags = settings.flags;
277  scale_x = settings.scale_x;
278  scale_y = settings.scale_y;
279  rotation = settings.rotation;
280  opacity = settings.opacity;
282  relative_scale_to_page = settings.relative_scale_to_page;
283  return *this;
284  }
285 
308  void Set(const common::Position position, float offset_x, float offset_y, uint32 flags, float scale_x, float scale_y,
309  float rotation, int opacity, bool is_offset_centered, float relative_scale_to_page)) {
310  this->position = position;
311  this->offset_x = offset_x;
312  this->offset_y = offset_y;
313  this->flags = flags;
314  this->scale_x = scale_x;
315  this->scale_y = scale_y;
316  this->rotation = rotation;
317  this->opacity = opacity;
319  this->relative_scale_to_page = relative_scale_to_page;
320  }
321 
329  float offset_x;
331  float offset_y;
340  float scale_x;
342  float scale_y;
344  float rotation;
349  int opacity;
356  * @brief 与目标页面相对比例。有效范围:0到1(不包含0)。
357  * 如果值为0或大于1,则禁用此功能,改用scale_x/scale_y。默认值:0(禁用)。
358  */
359  float relative_scale_to_page;
360 };
361 
363 class WatermarkTextProperties FS_FINAL : public Object {
364  public:
370  typedef enum _FontStyle {
375  } FontStyle;
376 
377 
402  : font(font)
404  , color(color)
405  , font_style(style)
407  , alignment(alignment) {}
408 
411  : font_size(24.0)
412  , color(0x000000)
414  , line_space(1.0)
415  , alignment(CommonDefines::e_AlignmentLeft) {}
416 
423  : font(properties.font)
424  , font_size(properties.font_size)
425  , color(properties.color)
426  , font_style(properties.font_style)
427  , line_space(properties.line_space)
428  , alignment(properties.alignment) {}
429 
438  font = properties.font;
439  font_size = properties.font_size;
440  color = properties.color;
441  font_style = properties.font_style;
442  line_space = properties.line_space;
443  alignment = properties.alignment;
444  return *this;
445  }
446 
472  void Set(const common::Font& font, float font_size, RGB color, FontStyle style, float line_space,
474  this->font = font;
475  this->font_size = font_size;
476  this->color = color;
477  this->font_style = style;
478  this->line_space = line_space;
479  this->alignment = alignment;
480  }
481 
485  float font_size;
504  float line_space;
515 };
516 } // namespace pdf
517 } // namespace foxit
518 #endif // FS_WATERMARK_H_
519 
void Set(const common::Position position, float offset_x, float offset_y, uint32 flags, float scale_x, float scale_y, float rotation, int opacity, bool is_offset_centered, float relative_scale_to_page))
设置值。
Definition: fs_watermark.h:308
Watermark & operator=(const Watermark &other)
赋值操作符。
void Set(const common::Font &font, float font_size, RGB color, FontStyle style, float line_space, foxit::common ::Alignment alignment)
设置值。
Definition: fs_watermark.h:472
Definition: fs_image.h:36
如果设置,不显示水印。
Definition: fs_watermark.h:189
如果设置,如果这些水印使用相同的页面对象,水印将共享一个表单XObject。
Definition: fs_watermark.h:195
Position
PDF页面中水印位置枚举。
Definition: fs_common.h:128
FontStyle
水印字体样式的枚举。
Definition: fs_watermark.h:370
CFX_Object Object
对象类型。
Definition: fs_basictypes.h:220
float font_size
字体大小,以点为单位。默认值为24.0。
Definition: fs_watermark.h:485
float GetWidth() const
获取当前水印的原始宽度。
Watermark(const PDFDoc &document, const wchar_t *text, const WatermarkTextProperties &properties, const WatermarkSettings &settings)
从指定文本内容构造。
PDF文档相关定义和类的头文件。
common::Position position
水印位置。
Definition: fs_watermark.h:327
~Watermark()
析构函数。
uint32 RGB
RGB 颜色类型,24 位,((b) | ((g) << 8) | ((r) << 16)))
Definition: fs_basictypes.h:211
foxit::common ::Alignment alignment
文本水平对齐方式。默认值为 common::e_AlignmentLeft 。
Definition: fs_watermark.h:514
WatermarkSettings()
构造函数。
Definition: fs_watermark.h:236
如果设置,如果这些水印使用相同的图像或位图,水印将共享一个图像流。
Definition: fs_watermark.h:191
Definition: fs_watermark.h:171
如果设置,如果这些水印使用相同的文本和文本相关属性,水印将共享一个表单XObject。
Definition: fs_watermark.h:193
float offset_y
垂直偏移量,以点为单位。
Definition: fs_watermark.h:331
水印字体样式:带下划线。
Definition: fs_watermark.h:374
Definition: fs_pdfdoc.h:768
如果设置,水印将在插入PDF页面时成为注释。
Definition: fs_watermark.h:183
Definition: fs_watermark.h:40
bool InsertToPage(PDFPage page)
将当前水印插入PDF页面。
图像和位图相关定义和类的头文件。
Definition: fs_watermark.h:363
float offset_x
水平偏移量,以点为单位。
Definition: fs_watermark.h:329
WatermarkSettings(const common::Position position, float offset_x, float offset_y, uint32 flags, float scale_x, float scale_y, float rotation, int opacity, bool is_offset_centered, float relative_scale_to_page)
带参数的构造函数。
Definition: fs_watermark.h:220
bool operator !=(const Watermark &other) const
不相等操作符。
水印字体样式:正常。
Definition: fs_watermark.h:372
int opacity
不透明度,以百分比为单位。有效范围:从0到100。 0表示完全透明,100表示完全不透明。
Definition: fs_watermark.h:349
bool is_offset_centered
如果为 true,则 position 无效,偏移量以水印中心为基准。 如果为 false,则偏移量相对于指定 position 计算。
Definition: fs_watermark.h:355
如果设置,在其他页面内容之上显示水印。
Definition: fs_watermark.h:185
如果设置,水印将在插入PDF页面时成为页面内容的一部分。
Definition: fs_watermark.h:181
WatermarkSettings & operator=(const WatermarkSettings &settings)
赋值操作符。
Definition: fs_watermark.h:272
WatermarkTextProperties(const common::Font &font, float font_size, RGB color, FontStyle style, float line_space, foxit::common ::Alignment alignment)
带参数的构造函数。
Definition: fs_watermark.h:400
float line_space
行间距,以行高为单位。默认值为1.0。
Definition: fs_watermark.h:504
WatermarkTextProperties()
构造函数。
Definition: fs_watermark.h:410
如果设置,不打印水印。
Definition: fs_watermark.h:187
FontStyle font_style
字体样式。默认值为 WatermarkTextProperties::e_FontStyleNormal 。
Definition: fs_watermark.h:496
FX_UINT32 uint32
无符号 32 位整数。
Definition: fs_basictypes.h:195
Definition: fs_pdfpage.h:417
void * FS_HANDLE
句柄类型。
Definition: fs_basictypes.h:213
通用定义和类的头文件。
bool IsEmpty() const
检查当前对象是否为空。
float scale_y
垂直缩放系数。应大于0.001f。
Definition: fs_watermark.h:342
Alignment
对齐方式(水平)枚举。
Definition: fs_common.h:94
WatermarkTextProperties(const WatermarkTextProperties &properties)
带另一个水印文本属性对象的构造函数。
Definition: fs_watermark.h:422
Definition: fs_basictypes.h:471
WatermarkTextProperties & operator=(const WatermarkTextProperties &properties)
赋值操作符。
Definition: fs_watermark.h:437
WatermarkSettings(const WatermarkSettings &settings)
带另一个水印设置对象的构造函数。
Definition: fs_watermark.h:253
Definition: fs_common.h:1523
Foxit 命名空间。
Definition: fs_accessibility.h:28
float GetHeight() const
获取当前水印的原始高度。
左对齐。
Definition: fs_common.h:96
common::Font font
用于文本的字体对象。
Definition: fs_watermark.h:483
float rotation
旋转角度,以度为单位。
Definition: fs_watermark.h:344
uint32 flags
水印标志。
Definition: fs_watermark.h:338
#define NULL
空指针值。
Definition: fx_system.h:792
位置:左上。
Definition: fs_common.h:130
float scale_x
水平缩放系数。应大于0.001f。
Definition: fs_watermark.h:340
Definition: fs_image.h:451
Flags
水印设置标志的枚举。
Definition: fs_watermark.h:179
RGB color
文本颜色。格式:0xRRGGBB。默认值为0x000000。
Definition: fs_watermark.h:487
bool operator==(const Watermark &other) const
相等操作符。