Skip to content

水印

福昕 PDF SDK iOS 版通过 Core SDK 提供了完整的水印 API,支持创建文本水印、图片水印和页面水印,并将其作为页面内容或注释插入到指定页面。

核心类

说明
FSWatermark水印对象,支持文本、Bitmap、Image 和 PDFPage 四种来源
FSWatermarkSettings水印通用设置:位置、偏移、缩放、旋转、透明度、标志位
FSWatermarkTextProperties文本水印属性:字体、字号、颜色、样式、行距、对齐方式

创建水印

FSWatermark 提供了四种构造方式,分别对应不同的水印来源:

objc
// 文本水印
[[FSWatermark alloc] initWithDocument:doc text:@"CONFIDENTIAL"
    properties:textProps settings:settings]

// Bitmap 水印
[[FSWatermark alloc] initWithDocument:doc bitmap:bitmap settings:settings]

// Image 水印
[[FSWatermark alloc] initWithDocument:doc image:image frame_index:0 settings:settings]

// 页面水印
[[FSWatermark alloc] initWithDocument:doc page:sourcePage settings:settings]

标志位常量

常量说明
FSWatermarkSettingsFlagASPageContents作为页面内容插入
FSWatermarkSettingsFlagASAnnot作为注释插入
FSWatermarkSettingsFlagOnTop置于页面内容之上
FSWatermarkSettingsFlagNoPrint不可打印
FSWatermarkSettingsFlagInvisible不可见
FSWatermarkSettingsFlagShareImageStream多页共享图片流
FSWatermarkSettingsFlagShareTextStream多页共享文本流
FSWatermarkSettingsFlagSharePageStream多页共享页面流

示例:添加文本水印

objc
#import <FoxitRDK/FSPDFObjC.h>

FSPDFDoc *doc = [[FSPDFDoc alloc] initWithPath:@"path/to/Sample.pdf"];
[doc load:nil];

FSWatermarkSettings *settings = [[FSWatermarkSettings alloc] init];
[settings setPosition:FSPosCenter];
[settings setOffset_x:0];
[settings setOffset_y:0];
[settings setFlags:FSWatermarkSettingsFlagASPageContents | FSWatermarkSettingsFlagOnTop];
[settings setScale_x:1.0f];
[settings setScale_y:1.0f];
[settings setRotation:-45.0f];
[settings setOpacity:50];

FSWatermarkTextProperties *textProps = [[FSWatermarkTextProperties alloc] init];
[textProps setFont:[[FSFont alloc] initWithStandard_id:FSFontStdIDCourier]];
[textProps setFont_size:48.0f];
[textProps setColor:0xFF0000];
[textProps setFont_style:FSWatermarkTextPropertiesFontStyleNormal];
[textProps setLine_space:1];
[textProps setAlignment:FSAlignmentCenter];

FSWatermark *watermark = [[FSWatermark alloc] initWithDocument:doc
                                                          text:@"CONFIDENTIAL"
                                                    properties:textProps
                                                      settings:settings];
[watermark insertToPage:[doc getPage:0]];

[doc saveAs:@"path/to/output.pdf" saveFlags:FSPDFDocSaveFlagNormal];

API 参考

FSWatermarkFSWatermarkSettingsFSWatermarkTextProperties 的完整接口说明请参阅 API 手册