gpt4 book ai didi

pdf - 如何使用 iTextSharp 展平 XFA PDF 表单?

转载 作者:行者123 更新时间:2023-12-04 15:23:19 24 4
gpt4 key购买 nike

我假设我需要展平 XFA 表单以便在使用 Nuance 的 CSDK 的应用程序的 UI 上正确显示。当我现在处理它时,我收到一条通用消息“请稍候......如果这条消息最终没有被替换......”。

正在寻找一些示例 iTextSharp 代码来执行此操作。

最佳答案

您没有插入代码示例来展示您当前如何展平 XFA 表单。我假设您的代码如下所示:

var reader = new PdfReader(existingFileStream);
var stamper = new PdfStamper(reader, newFileStream);
var form = stamper.AcroFields;
var fieldKeys = form.Fields.Keys;
foreach (string fieldKey in fieldKeys) {
form.SetField(fieldKey, "X");
}
stamper.FormFlattening = true;
stamper.Close();
reader.Close();

此代码在尝试基于 AcroForm 技术展平表单时有效,但它不能用于基于 XML 表单架构 (XFA) 的表单!

动态 XFA 表单通常包含单页 PDF(带有“请稍候...”消息的页面),在不理解 XFA 的查看器中显示。文档的实际内容存储为 XML 文件。

将 XFA 表单扁平化为普通 PDF 的过程需要您解析 XML 并将 XML 语法转换为 PDF 语法。这可以使用 iText 的 XFA Worker 来完成:http://itextpdf.com/product/xfa_worker

假设您在内存中有一个文件 (ms),其中包含一个已填写的 XFA 表单,那么您可以使用以下代码来展平该表单:

Document document = new Document();
PdfWriter writer =
PdfWriter.GetInstance(document, new FileStream(dest, FileMode.Create));
XFAFlattener xfaf = new XFAFlattener(document, writer);
ms.Position = 0;
xfaf.Flatten(new PdfReader(ms));
document.Close();

您可以在此处下载包含 XFA Worker 的 DLL 的 zip 文件以及示例:http://itextsupport.com/download/xfa-net.zip

但是:由于太多开发人员在商业环境中使用 AGPL 版本的 iTextSharp 而未购买商业许可证,我们决定不开源 XFA Worker。您可以获得试用期的许可证 key ,但它是建立在 iTextSharp 商业版之上的商业产品。如果您从 iText Software 购买许可证,XFA Worker 只能用于生产。 iTextSharp 也是如此,但对于 iTextSharp,如果您不购买商业许可证,则没有许可证 key 可以阻止使用。对于 iTextSharp,我们依靠诚实。对于 XFA Worker,我们采取了一些预防措施 ;-)

关于pdf - 如何使用 iTextSharp 展平 XFA PDF 表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27067250/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com