首页 文章

iTextSharp生成的Adobe Livecycle(XFA)表单在Acrobat和Reader中的呈现方式不同

提问于
浏览
0

编辑:链接到下面的测试文件 .

作为项目的一部分,我在LiveCycle Designer 11.0中创建了动态PDF表单 . 在转发给开发人员之前,这些表单在Acrobat中设置为启用阅读器 . 然后,他使用iTextSharp 5.5.6填充PDF .

此表单具有许多动态属性,包括隐藏字段,动态子表单等 .

当在Adobe Reader 11.0.12(我的版本,但其他人受到影响)中打开生成的表单时,表单是a)只读和b)不显示所有动态字段,即使已满足条件显示它们他们已经充满了数据 . 一些显示 .

在Adobe Acrobat 11.0.9中打开它时,表单按预期呈现 . 根据表单的逻辑指示显示/隐藏节和字段 . 表格也是可填写的,不是只读的或扁平的 .

当我在Acrobat和Reader中比较表单的安全设置时,Acrobat中的“填写表单字段”设置设置为“允许”,而在Reader的安全设置中设置为“不允许” .

以下是包含以下内容的zip链接:1)在iTextSharp中生成的动态PDF 2)自动生成的表格文件3)数据映射Program.cs文件

Link to Test file showcasing the issue

在Acrobat中打开文件时,它按预期工作 . 当它在Reader中打开时,它将变为只读,并且只显示一个SignatureA和SignatureB,此时只应根据签名测试部分中选择的单选按钮显示一个 .

我没有访问代码库,所以我不能在我的头上测试应用程序 . iTextSharp中是否有任何可能导致此问题的设置?

感谢您的任何帮助,您可以提供!

1 回答

  • 4

    您的PDF不会通过增量更新进行更新,这会破坏“启用阅读器”功能(由于完全重写,数字签名将变为无效) .

    您将在追加模式下创建PdfStamper实例:

    iTextSharp.text.pdf.PdfStamper stamper = new iTextSharp.text.pdf.PdfStamper(reader, ms, '\0', true);
    

相关问题