本组中的示例展示了如何使用受密码保护的 PDF(访问其属性、
进行修改、添加注释等)而不指定密码。
但请记住这种情况下的以下固有限制:
- 您无法读取/写入基于 PDF 字符串对象的属性,这些属性通常是字符串属性(例如 DocumentInfo.Creator)。
- 您无法读取/写入流对象,因为依赖于 PDF 流而不受支持的一些操作是:
- 渲染 PDF 页面。
- 添加或更改页面内容。
- 嵌入字体。
- 创建或编辑注释外观流。
- PDF 文件可能包含“对象流”。对象流是其中可以存储一系列间接对象的流对象,
作为将它们存储在最外层文件级别的替代方案。在加密的 PDF 中,对象流也将被加密,
因此其中的 PDF 对象将无法访问,因为使用对象流的结果 PDF 文件根本无法在不知道密码的情况下打开,
将抛出异常。
无需指定密码即可对受密码保护的 PDF 执行的操作包括:
- 读取/写入不基于 PDF 字符串或流的属性。
- 添加无需使用 PDF 字符串或流即可定义的新对象。
另请注意,由于无许可证限制(5 页加载限制和添加 nag 文本),这些示例中的大多数都无法在 GcPdf 的未授权版本中运行。
下面的示例演示了在没有密码的情况下处理受密码保护的 PDF 的一些有用场景。
仅供参考,这些演示中所有受密码保护的 PDF 均具有用户密码 user 和所有者密码 owner。