目录

PDF Kit水印相关问题汇总

问题现象

  1. PDF的水印获取和判断存在只能判断当前打开PDF操作添加的水印吗?还是可以判断PDF文件已有的水印?
  2. 文件原先使用pdfService添加的水印可以判断吗?还是只能判断本次打开文件使用pdfService添加的水印?
  3. 使用addWatermark接口时,重复调用是叠加还是覆盖原有水印?调用removeWatermark方法是删除文档中全部水印还是单独删除某次添加的水印?
  4. 若有多个水印,调用getWatermark是获取哪一个呢?
  5. PDF水印添加是单个水印吗还是平铺(重复)呢?是否支持平铺(重复)?
  6. PDF添加图片水印时,图片的尺寸和对齐方式是怎么样的?对应ImageFit中的哪个呢?
  7. PDF添加水印和背景时,二者是谁在上面谁在下面,与添加顺序和isOnTop参数值有什么关联?
  8. 如何给PDF添加水印?

背景知识

PDF水印能力由pdfService能力提供,具体参考官网指导:添加、删除水印。对指定页面添加水印,包括文本水印或图片水印。

pdfService和PdfView区别参考:pdfService与PdfView能力比较。

解决方案

  1. 参考hasWatermark和getWatermark,PDF Kit提供了水印获取和判断接口,主要用于判断pdfService服务添加的水印,不能判断所有来源的水印。
  2. 可以判断,文件若原先使用pdfService添加的水印可以被接口识别。
  3. addWatermark接口的重复调用会造成水印叠加,调用removeWatermark方法会删除文档中的全部水印,需要删除后重新添加需要保留的水印。
  4. 调用getWatermark方法,会获取最新一次添加的水印信息。
  5. PDF文档添加水印是单个水印,不会平铺或重复,具体参考addWatermark。
  6. PDF添加图片水印时,对应ImageFit中的Fill,即不保持宽高比进行放大缩小,使得图片或视频充满显示边界,对齐方式可以通过WatermarkInfo.horizontalAlignment及WatermarkInfo.verticalAlignment进行设置。
  7. PDF添加水印和背景时,水印始终在背景的上面,与添加顺序无关。水印和背景的isOnTop配置,用来控制是否遮盖文字,isOnTop设置为true显示在文字上面遮盖文字,设置为false显示在文字下面不遮盖文字,与水印和背景层级关系无关。
  8. PDF添加水印您可以参考:PDF文档添加水印。