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 {
181 e_FlagASPageContents = 0x0000,
183 e_FlagASAnnot = 0x0001,
185 e_FlagOnTop = 0x0002,
187 e_FlagNoPrint = 0x0004,
189 e_FlagInvisible = 0x0008,
191 e_FlagShareImageStream = 0x0010,
193 e_FlagShareTextStream = 0x0020,
195 e_FlagSharePageStream = 0x0040
196 } Flags;
197
198
218 explicit WatermarkSettings(const common::Position position, float offset_x, float offset_y, uint32 flags,
219 float scale_x, float scale_y, float rotation, int opacity, bool is_offset_centered)
220 : position(position)
221 , offset_x(offset_x)
222 , offset_y(offset_y)
223 , flags(flags)
224 , scale_x(scale_x)
225 , scale_y(scale_y)
226 , rotation(rotation)
227 , opacity(opacity)
228 , is_offset_centered(is_offset_centered) {}
229
231 WatermarkSettings()
232 : position(CommonDefines::e_PosTopLeft)
233 , offset_x(0)
234 , offset_y(0)
235 , flags(0)
236 , scale_x(1.0)
237 , scale_y(1.0)
238 , rotation(0)
239 , opacity(100)
240 , is_offset_centered(false) {}
241
247 WatermarkSettings(const WatermarkSettings& settings)
248 : position(settings.position)
249 , offset_x(settings.offset_x)
250 , offset_y(settings.offset_y)
251 , flags(settings.flags)
252 , scale_x(settings.scale_x)
253 , scale_y(settings.scale_y)
254 , rotation(settings.rotation)
255 , opacity(settings.opacity)
256 , is_offset_centered(settings.is_offset_centered) {}
257
265 WatermarkSettings& operator = (const WatermarkSettings& settings) {
266 position = settings.position;
267 offset_x = settings.offset_x;
268 offset_y = settings.offset_y;
269 flags = settings.flags;
270 scale_x = settings.scale_x;
271 scale_y = settings.scale_y;
272 rotation = settings.rotation;
273 opacity = settings.opacity;
274 is_offset_centered = settings.is_offset_centered;
275 return *this;
276 }
277
299 void Set(const common::Position position, float offset_x, float offset_y, uint32 flags, float scale_x, float scale_y,
300 float rotation, int opacity, bool is_offset_centered) {
301 this->position = position;
302 this->offset_x = offset_x;
303 this->offset_y = offset_y;
304 this->flags = flags;
305 this->scale_x = scale_x;
306 this->scale_y = scale_y;
307 this->rotation = rotation;
308 this->opacity = opacity;
309 this->is_offset_centered = is_offset_centered;
310 }
311
317 common::Position position;
319 float offset_x;
321 float offset_y;
328 uint32 flags;
330 float scale_x;
332 float scale_y;
334 float rotation;
339 int opacity;
345 bool is_offset_centered;
346 };
347
349 class WatermarkTextProperties FS_FINAL : public Object {
350 public:
356 typedef enum _FontStyle {
358 e_FontStyleNormal = 0,
360 e_FontStyleUnderline = 1
361 } FontStyle;
362
363
386 WatermarkTextProperties(const common::Font& font, float font_size, RGB color, FontStyle style, float line_space,
387 CommonDefines::Alignment alignment)
388 : font(font)
389 , font_size(font_size)
390 , color(color)
391 , font_style(style)
392 , line_space(line_space)
393 , alignment(alignment) {}
394
396 WatermarkTextProperties()
397 : font_size(24.0)
398 , color(0x000000)
399 , font_style(e_FontStyleNormal)
400 , line_space(1.0)
401 , alignment(CommonDefines::e_AlignmentLeft) {}
402
408 WatermarkTextProperties(const WatermarkTextProperties& properties)
409 : font(properties.font)
410 , font_size(properties.font_size)
411 , color(properties.color)
412 , font_style(properties.font_style)
413 , line_space(properties.line_space)
414 , alignment(properties.alignment) {}
415
423 WatermarkTextProperties& operator = (const WatermarkTextProperties& properties) {
424 font = properties.font;
425 font_size = properties.font_size;
426 color = properties.color;
427 font_style = properties.font_style;
428 line_space = properties.line_space;
429 alignment = properties.alignment;
430 return *this;
431 }
432
458 void Set(const common::Font& font, float font_size, RGB color, FontStyle style, float line_space,
459 CommonDefines::Alignment alignment) {
460 this->font = font;
461 this->font_size = font_size;
462 this->color = color;
463 this->font_style = style;
464 this->line_space = line_space;
465 this->alignment = alignment;
466 }
467
469 common::Font font;
471 float font_size;
473 RGB color;
482 FontStyle font_style;
490 float line_space;
500 CommonDefines::Alignment alignment;
501 };
502 } // namespace pdf
503 } // namespace foxit
504 #endif // FS_WATERMARK_H_
505
foxit::pdf::Watermark::operator=
Watermark & operator=(const Watermark &other)
赋值操作符。
foxit::pdf::WatermarkTextProperties::Set
void Set(const common::Font &font, float font_size, RGB color, FontStyle style, float line_space, foxit::common ::Alignment alignment)
设置值。
Definition: fs_watermark.h:458
foxit::common::Bitmap
Definition: fs_image.h:36
foxit::pdf::WatermarkSettings::e_FlagInvisible
如果设置，不显示水印。
Definition: fs_watermark.h:189
foxit::pdf::WatermarkSettings::e_FlagSharePageStream
如果设置，如果这些水印使用相同的页面对象，水印将共享一个表单XObject。
Definition: fs_watermark.h:195
foxit::pdf::WatermarkSettings::Set
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)
设置值。
Definition: fs_watermark.h:299
foxit::common::Position
Position
PDF页面中水印位置枚举。
Definition: fs_common.h:128
foxit::pdf::WatermarkTextProperties::FontStyle
FontStyle
水印字体样式的枚举。
Definition: fs_watermark.h:356
foxit::Object
CFX_Object Object
对象类型。
Definition: fs_basictypes.h:220
foxit::pdf::WatermarkTextProperties::font_size
float font_size
字体大小，以点为单位。默认值为24.0。
Definition: fs_watermark.h:471
foxit::pdf::Watermark::GetWidth
float GetWidth() const
获取当前水印的原始宽度。
foxit::pdf::Watermark::Watermark
Watermark(const PDFDoc &document, const wchar_t *text, const WatermarkTextProperties &properties, const WatermarkSettings &settings)
从指定文本内容构造。
fs_pdfdoc.h
PDF文档相关定义和类的头文件。
foxit::pdf::WatermarkSettings::position
common::Position position
水印位置。
Definition: fs_watermark.h:317
foxit::pdf::Watermark::~Watermark
~Watermark()
析构函数。
foxit::RGB
uint32 RGB
RGB 颜色类型，24 位，((b) | ((g) << 8) | ((r) << 16)))
Definition: fs_basictypes.h:211
foxit::pdf::WatermarkTextProperties::alignment
foxit::common ::Alignment alignment
文本水平对齐方式。默认值为common::e_AlignmentLeft。
Definition: fs_watermark.h:500
foxit::pdf::WatermarkSettings::WatermarkSettings
WatermarkSettings()
构造函数。
Definition: fs_watermark.h:231
foxit::pdf::WatermarkSettings::e_FlagShareImageStream
如果设置，如果这些水印使用相同的图像或位图，水印将共享一个图像流。
Definition: fs_watermark.h:191
foxit::pdf::WatermarkSettings
Definition: fs_watermark.h:171
foxit::pdf::WatermarkSettings::e_FlagShareTextStream
如果设置，如果这些水印使用相同的文本和文本相关属性，水印将共享一个表单XObject。
Definition: fs_watermark.h:193
foxit::pdf::WatermarkSettings::offset_y
float offset_y
垂直偏移量，以点为单位。
Definition: fs_watermark.h:321
foxit::pdf::WatermarkTextProperties::e_FontStyleUnderline
水印字体样式：带下划线。
Definition: fs_watermark.h:360
foxit::pdf::PDFDoc
Definition: fs_pdfdoc.h:768
foxit::pdf::WatermarkSettings::e_FlagASAnnot
如果设置，水印将在插入PDF页面时成为注释。
Definition: fs_watermark.h:183
foxit::pdf::Watermark
Definition: fs_watermark.h:40
foxit::pdf::Watermark::InsertToPage
bool InsertToPage(PDFPage page)
将当前水印插入PDF页面。
fs_image.h
图像和位图相关定义和类的头文件。
foxit::pdf::WatermarkTextProperties
Definition: fs_watermark.h:349
foxit::pdf::WatermarkSettings::offset_x
float offset_x
水平偏移量，以点为单位。
Definition: fs_watermark.h:319
foxit::pdf::Watermark::operator !=
bool operator !=(const Watermark &other) const
不相等操作符。
foxit::pdf::WatermarkTextProperties::e_FontStyleNormal
水印字体样式：正常。
Definition: fs_watermark.h:358
foxit::pdf::WatermarkSettings::opacity
int opacity
不透明度，以百分比为单位。有效范围：从0到100。 0表示完全透明，100表示完全不透明。
Definition: fs_watermark.h:339
foxit::pdf::WatermarkSettings::is_offset_centered
bool is_offset_centered
如果为 true，则 position 无效，偏移量以水印中心为基准。 如果为 false，则偏移量相对于指定 position 计算。
Definition: fs_watermark.h:345
foxit::pdf::WatermarkSettings::e_FlagOnTop
如果设置，在其他页面内容之上显示水印。
Definition: fs_watermark.h:185
foxit::pdf::WatermarkSettings::e_FlagASPageContents
如果设置，水印将在插入PDF页面时成为页面内容的一部分。
Definition: fs_watermark.h:181
foxit::pdf::WatermarkSettings::operator=
WatermarkSettings & operator=(const WatermarkSettings &settings)
赋值操作符。
Definition: fs_watermark.h:265
foxit::pdf::WatermarkTextProperties::WatermarkTextProperties
WatermarkTextProperties(const common::Font &font, float font_size, RGB color, FontStyle style, float line_space, foxit::common ::Alignment alignment)
带参数的构造函数。
Definition: fs_watermark.h:386
foxit::pdf::WatermarkTextProperties::line_space
float line_space
行间距，以行高为单位。默认值为1.0。
Definition: fs_watermark.h:490
foxit::pdf::WatermarkTextProperties::WatermarkTextProperties
WatermarkTextProperties()
构造函数。
Definition: fs_watermark.h:396
foxit::pdf::WatermarkSettings::e_FlagNoPrint
如果设置，不打印水印。
Definition: fs_watermark.h:187
foxit::pdf::WatermarkTextProperties::font_style
FontStyle font_style
字体样式。默认值为WatermarkTextProperties::e_FontStyleNormal。
Definition: fs_watermark.h:482
foxit::uint32
FX_UINT32 uint32
无符号 32 位整数。
Definition: fs_basictypes.h:195
foxit::pdf::PDFPage
Definition: fs_pdfpage.h:417
foxit::FS_HANDLE
void * FS_HANDLE
句柄类型。
Definition: fs_basictypes.h:213
fs_common.h
通用定义和类的头文件。
foxit::pdf::Watermark::IsEmpty
bool IsEmpty() const
检查当前对象是否为空。
foxit::pdf::WatermarkSettings::scale_y
float scale_y
垂直缩放系数。应大于0.001f。
Definition: fs_watermark.h:332
foxit::common::Alignment
Alignment
对齐方式（水平）枚举。
Definition: fs_common.h:94
foxit::pdf::WatermarkTextProperties::WatermarkTextProperties
WatermarkTextProperties(const WatermarkTextProperties &properties)
带另一个水印文本属性对象的构造函数。
Definition: fs_watermark.h:408
foxit::Base
Definition: fs_basictypes.h:465
foxit::pdf::WatermarkTextProperties::operator=
WatermarkTextProperties & operator=(const WatermarkTextProperties &properties)
赋值操作符。
Definition: fs_watermark.h:423
foxit::pdf::WatermarkSettings::WatermarkSettings
WatermarkSettings(const WatermarkSettings &settings)
带另一个水印设置对象的构造函数。
Definition: fs_watermark.h:247
foxit::common::Font
Definition: fs_common.h:1519
foxit
Foxit命名空间。
Definition: fs_taggedpdf.h:27
foxit::pdf::Watermark::GetHeight
float GetHeight() const
获取当前水印的原始高度。
foxit::common::e_AlignmentLeft
左对齐。
Definition: fs_common.h:96
foxit::pdf::WatermarkTextProperties::font
common::Font font
用于文本的字体对象。
Definition: fs_watermark.h:469
foxit::pdf::WatermarkSettings::rotation
float rotation
旋转角度，以度为单位。
Definition: fs_watermark.h:334
foxit::pdf::WatermarkSettings::flags
uint32 flags
水印标志。
Definition: fs_watermark.h:328
NULL
#define NULL
空指针值。
Definition: fx_system.h:792
foxit::common::e_PosTopLeft
位置：左上。
Definition: fs_common.h:130
foxit::pdf::WatermarkSettings::scale_x
float scale_x
水平缩放系数。应大于0.001f。
Definition: fs_watermark.h:330
foxit::common::Image
Definition: fs_image.h:450
foxit::pdf::WatermarkSettings::Flags
Flags
水印设置标志的枚举。
Definition: fs_watermark.h:179
foxit::pdf::WatermarkTextProperties::color
RGB color
文本颜色。格式：0xRRGGBB。默认值为0x000000。
Definition: fs_watermark.h:473
foxit::pdf::WatermarkSettings::WatermarkSettings
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)
带参数的构造函数。
Definition: fs_watermark.h:218
foxit::pdf::Watermark::operator==
bool operator==(const Watermark &other) const
相等操作符。