本文将告诉您如何使用PDFLib保护PDF文档:
1、设置PDF文档密码
可以通过PDF_begin_document()函数的userpassword和masterpassword选项设置文档密码。PDFLib与用户输入的密码以下列方式交互 如果设置了使用者密码或权限,但是没有设置所有者的密码,普通用户就可以更改安全性设置。因此,PDFLib认为这种情况是错误的。 如果使用者密码和所有者密码是相同的,就没有办法区分使用者和所有者,也就无法有效的保护文档。PDFLib认为这种情况也是错误的。 对于使用者密码和所有者密码,最多使用前32个字符,其余的字符将被忽略,不对加密产生影响。不允许空密码。
在PDF_begin_document()中输入的密码将在后续生成的所有文档中使用。
2、设置文档权限
通过在PDF_begin_document中设置permission选项控制存取权限。permissions选项包含一或多个限制关键字。当设置permission选项时,masterpassword选项也必须设置。默认情况下,所有的操作都是允许的,指定存取限制将使相应的功能在Acrobat中不能使用。存储限制可以在不指定使用者密码的情况下设置。多种限制可以按以下方式指定: PDF_begin_document(p, filename, 0, "masterpassword=abc123 permissions {noprint nocopy}");
以下是PDFLib支持的存取限制关键字。部分关键字需要PDF1.4或更高版本的支持。如果输出的PDF版本过低的话,设置无效。
关键字 说明 noprint Acrobat将禁止打印文档 nomodify Acrobat将禁止使用者添加表单域或进行任何更改 nocopy Acrobat将禁止复制、提取文本或图象,并且将会使相关的用户界面不可用 noannots Acrobat将禁止添加、更改注释或表单域 noforms Acrobat将禁止填写表单域 noaccessible 将禁止提取文本或图象 noassemble 禁止插入、删除、旋转页面以及创建书签和缩略图 nohiresprint 禁止高分辨率打印。 plainmetadata 对文档的metadata不进行加密。仅与XMP metadata数据有关,与文档信息域无关。 |