我不知道是否可以创建启用了密码安全性的pdf,这也允许提取页面。
我没有在itextsharp中找到任何允许启用页面提取的属性。
任何人都有任何想法?
这是我想要启用的属性。
非常感谢。
答案 0 :(得分:1)
我已经看了ISO-32000-2草案中的权限位,我将它们与iText中提供的参数(用ALL_CAPS编写)进行了比较:
bit 1: Not assigned
bit 2: Not assigned
bit 3: Degraded printing: ALLOW_DEGRADED_PRINTING
bit 4: Modify contents: ALLOW_MODIFY_CONTENTS
bit 5: Extract text / graphics: ALLOW_COPY
bit 6: Add / Modify text annotations: ALLOW_MODIFY_ANNOTATIONS
bit 7: Not assigned
bit 8: Not assigned
bit 9: Fill in fields: ALLOW_FILL_IN
bit 10: **Deprecated** ALLOW_SCREEN_READERS
bit 11: Assembly: ALLOW_ASSEMBLY
bit 12: Printing: ALLOW_PRINTING
当我将规格与您的屏幕截图进行比较时,我认为权限如下:
我找不到任何引用页面提取的权限位。我已经尝试设置ISO-32000-2中记录的所有标志,但它们没有导致将页面提取设置为允许。
我尝试了两件事:
首先我尝试设置未分配的位:位1,2,7,8,13,14。这并没有改变任何东西。然后我在Acrobat中打开了一个测试文档,我尝试找到一个允许页面提取的设置:
我找不到任何。
由于ISO-32000中没有描述权限,并且因为似乎没有办法在Acrobat中设置此权限,我倾向于认为无法设置此权限。查看“允许”的唯一方法是使用所有者密码打开文档。
请在找到使用Acrobat设置此权限的方法后立即更新您的问题。我正在使用Acrobat XI Pro。
另一个注意事项:以您的方式设置权限(仅使用所有者密码而不使用用户密码)只是心理, NOT < / em>一种全面的技术方法来加强保护。请参阅How to read PDFs created with an unknown random owner password?,了解如何从仅使用所有者密码保护的PDF中删除权限。
答案 1 :(得分:0)
要使用iTextSharp保护PDF文件,同时允许用户提取文本和图像,但阻止他们编辑,保存和打印PDF文件,我这样做 -
//Obviously, use the correct namespace
using iTextSharp.text.pdf;
//Create an instance of PdfReader, associate your PDF file
PdfReader reader = new PdfReader(“yourFile.PDF”);
//Secure your file with a password(yourPDFpassword), set the security to
// PdfWriter.ALLOW_COPY – to allow for security with content extraction
PdfEncryptor.Encrypt(reader, output, true, "", yourPDFpassword, PdfWriter.ALLOW_COPY);