mbr*_*ion 5 .net serialization livecycle
我的团队有一个我们使用 Adobe LiveCycle 设计器创建的模板 (XDP)。
情况:
作为更大升级的一部分,我们正在用此 LiveCycle 表单替换旧的 Acrobat 表单(XFDF 格式)
当前的 Acrobat 表单使用基本数据动态填充并以 PDF 格式交付给用户(用户单击链接,并在其机器上打开一个预填充有基本人口统计详细信息的 PDF)
当前流程类似于:用户点击,.NET 应用程序检索数据,.NET 应用程序从文件系统检索 PDF,.NET 应用程序将数据序列化为 XFDF 形式的模板,ASP.NET 应用程序将 HTTP 响应发送回 XFDF 中的用户格式,用户在 Adobe Reader 中查看 PDF
我们希望使用新的 XDP 格式保持一个大致类似的过程。
为了记录在案,我们不要有机会获得的LiveCycle服务,做这种类型的工作(如劳务)。也就是说,出于以下几个原因,我们希望在 .NET 中创建这种类型的序列化:我们的 LiveCycle 许可证有限,并且由于它们在企业中的位置,很难访问 LiveCycle 服务。
任何想法(甚至“停止这样做,你疯了”)都值得赞赏。
嘿嘿,抱歉回复慢了,没看到。
创建 PDF。将其编码为 base64。
创建一个文本文件 foo.xdp:
<?xml version='1.0' encoding='UTF-8'?>
<?xfa generator='AdobeDesigner_V7.0' APIVersion='2.2.4333.0'?>
<xdp:xdp xmlns:xdp='http://ns.adobe.com/xdp/'>
<xfa:datasets xmlns:xfa='http://www.xfa.org/schema/xfa-data/1.0/'>
<xfa:data>
Run Code Online (Sandbox Code Playgroud)
在此处插入作为动态数据的 XML,与 PDF 中的动态字段相匹配。
</xfa:data>
</xfa:datasets>
<pdf xmlns=\"http://ns.adobe.com/xdp/pdf/\"><document>
<chunk>
Run Code Online (Sandbox Code Playgroud)
不要在标签后放置任何字符,插入 base64 编码的 PDF。
</chunk>
</document></pdf>
</xdp:xdp>
Run Code Online (Sandbox Code Playgroud)
而且,您瞧,您拥有了有效的 XDP。Adobe Reader 将接受此信息并显示包含您的值的 PDF。
在 Java 中,如果您有一个包含连接详细信息的属性,则以下代码可以使用 Livecycle 将 XDP 转换为 PDF,尽管在 C# 中您的情况可能有所不同。
// Create a ServiceClientFactory object
ServiceClientFactory myFactory = ServiceClientFactory
.createInstance(connectionProperties);
// Create a PDF Utility client
PDFUtilityServiceClient pdfClient = new PDFUtilityServiceClient(myFactory);
// Specify an XDP file to convert to a PDF document
ByteArrayInputStream bais = new ByteArrayInputStream(xdp.getBytes("ASCII"));
Document inDoc = new Document(bais);
// Convert the XDP file to a PDF document
Document pdf = pdfClient.convertXDPtoPDF(inDoc);
// Return the PDF as an InputStream.
return pdf.getInputStream();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8706 次 |
| 最近记录: |