ItextSharp不会呈现在Adobe Experience Manager中创建的PDF

时间:2015-10-21 23:12:36

标签: vb.net itext adobe aem livecycle-designer

我正在为新员工(直接存款,紧急联系等)创建PDF的应用程序。我使用Adobe Livecycle Designer在PDF上添加和标记字段,然后使用ItextSharp / vb.net设置字段的值。例如:pdfFormFields.SetField("lastName", employee.lastName)。 自2013年以来一直运行良好。现在我必须使用新版本更新PDfs,并且我正在使用AEM附带的较新版本的Designer。现在,当我的应用程序创建PDF时,我收到此消息:

您要加载的文档需要Adobe Reader 8或更高版本。您可能没有安装Adobe Reader,或者您的查看环境可能未正确配置为使用Adobe Reader。 有关如何安装Adobe Reader和配置查看环境的信息,请参阅http://www.adobe.com/go/pdf_forms_configure

即使我使用工作PDF,在Designer中打开并保存而不更改任何内容,也会发生这种情况。应用程序中的所有现有PDF都可以正常显示/按预期显示。

我确实安装了最新版本的ItextSharp以查看是否会修复它。错误。我注意到在工作PDF上,XFA / AcroShort2LongName有一个计数,而在我的坏PDF上,计数为0.另外在坏PDF上,名为TemplateSom的东西会列出我的所有表单字段。

非常感谢任何帮助,我已经在互联网上搜索了12个小时,没有发现任何相似甚至接近有用的信息。

代码:

 Dim outDirectory As String = Server.MapPath("Files\\")
 Dim temploc As String= "Templates\\" + FormName.Trim
 Dim pdfTemplate As String = HttpContext.Current.Server.MapPath(temploc)
 Dim newFile As String = outDirectory + FormName.Trim
 Dim pdfReader As New PdfReader(pdfTemplate)
 Dim pdfStamper As New PdfStamper(pdfReader, New FileStream( _
   newFile, FileMode.Create))
 Dim pdfFormFields As AcroFields = pdfStamper.AcroFields
  pdfFormFields.SetField("empFirst", firstname)
  pdfFormFields.SetField("empLast", lastname)
  pdfFormFields.SetField("empMiddle", middlename)
  pdfStamper.FormFlattening = True
  pdfStamper.Close()

0 个答案:

没有答案