如何在使用iTextSharp加密/解密PDF表单后阅读PDF表单字段

时间:2013-10-07 15:24:23

标签: c# pdf encryption itextsharp

我正在使用iTextSharp来操作PDF文档。当我加密PDF表单时,它运行良好,文档变得不可编辑(使用PdfEncryptor.Encrypt(...)方法)。我在加密时设置了所有者密码。后来当我使用相同的所有者密码阅读文档时,它也打开了文档。

当我尝试从打开的文档中读取表单字段时,问题就出现了。我打印PDF文档中的字段数,它为“0”。在加密之前,相同的表格显示超过50个字段计数。

那么为什么在使用iTextSharp加密/解密pdf文档后我无法再获取字段?

更新

我试图在iText RUPS工具中打开'加密的PDF',它在控制台中显示以下错误:

Exception in thread "Thread-6" java.lang.NullPointerException
    at com.itextpdf.rups.view.itext.treenodes.StructureTreeNode.<init>(StructureTreeNode.java:43)
    at com.itextpdf.rups.view.itext.StructureTree.loadKids(StructureTree.java:93)
    at com.itextpdf.rups.view.itext.StructureTree.loadKids(StructureTree.java:99)
    at com.itextpdf.rups.view.itext.StructureTree.loadKids(StructureTree.java:99)
    at com.itextpdf.rups.view.itext.StructureTree.loadKids(StructureTree.java:108)
    at com.itextpdf.rups.view.itext.StructureTree.loadKids(StructureTree.java:104)
    at com.itextpdf.rups.view.itext.StructureTree.loadKids(StructureTree.java:99)
    at com.itextpdf.rups.view.itext.StructureTree.loadKids(StructureTree.java:99)
    at com.itextpdf.rups.view.itext.StructureTree.loadKids(StructureTree.java:108)
    at com.itextpdf.rups.view.itext.StructureTree.loadKids(StructureTree.java:104)
    at com.itextpdf.rups.view.itext.StructureTree.loadKids(StructureTree.java:99)
    at com.itextpdf.rups.view.itext.StructureTree.loadKids(StructureTree.java:99)
    at com.itextpdf.rups.view.itext.StructureTree.loadKids(StructureTree.java:99)
    at com.itextpdf.rups.view.itext.StructureTree.update(StructureTree.java:75)
    at java.util.Observable.notifyObservers(Unknown Source)
    at com.itextpdf.rups.controller.PdfReaderController.notifyObservers(PdfReaderController.java:196)
    at com.itextpdf.rups.model.ObjectLoader.doTask(ObjectLoader.java:103)
    at com.itextpdf.rups.model.BackgroundTask$2.run(BackgroundTask.java:60)
    at java.lang.Thread.run(Unknown Source)

0 个答案:

没有答案