我正在使用 Adobe PDF 库(C++ 接口),并且一段时间以来一直在尝试删除现有 PDF 上的水印。
要添加水印,我使用了该PDDocAddWatermarkFromText
方法,但我需要删除文件上先前存在的水印。
当水印作为注释添加时,我完成了任务,但这不会涵盖所有可能的情况,因为它们似乎也可以作为背景对象添加。需要知道如何从文件中删除这些背景对象。
感谢帮助!
我正在使用 Adobe PDF 库(C++ 接口),并且一段时间以来一直在尝试删除现有 PDF 上的水印。
要添加水印,我使用了该PDDocAddWatermarkFromText
方法,但我需要删除文件上先前存在的水印。
当水印作为注释添加时,我完成了任务,但这不会涵盖所有可能的情况,因为它们似乎也可以作为背景对象添加。需要知道如何从文件中删除这些背景对象。
感谢帮助!
水印通常是页面内容流的最后一个元素,背景是内容流的第一个元素。所以我会检查第一个或最后一个元素是 PDEForm。如果是,我会检查 PDEFormCosObj 是否有 PieceInfo 字典条目。PieceInfo 字典可以指示它是水印还是背景。
否则,您可能需要分析该 PDEForm 的内容以获得类似水印的属性(例如,它是具有单个 textRun 的文本元素吗?Form|Text|TextRun 的矩阵是否指示任何旋转?)
好吧,可能很难清楚地识别作为纯文本存在的水印,而不是例如作为水印注释存在的水印。话虽如此,如果您可以识别水印格式的模式,则可以设计解决方案。
您是否尝试联系支持部门以获得更多帮助?