水印
福昕 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 参考
FSWatermark、FSWatermarkSettings、FSWatermarkTextProperties 的完整接口说明请参阅 API 手册。