我正在使用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)