Chu*_*uck 2 pdf xfa itextsharp
我假设我需要展平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();
Run Code Online (Sandbox Code Playgroud)
当尝试基于AcroForm技术展平表单时,此代码将起作用,但它不能用于基于XML Forms Architecture(XFA)的表单!
动态XFA表单通常由单个页面PDF(带有"请稍候..."消息的页面)组成,该页面在查看器中显示为不了解XFA.文档的实际内容存储为XML文件.
将XFA表单展平为普通PDF的过程要求您解析XML并将XML语法转换为PDF语法.这可以使用iText的XFA Worker来完成:http://itextpdf.com/product/xfa_worker
假设您在memory(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();
Run Code Online (Sandbox Code Playgroud)
您可以下载包含XFA Worker DLL的zip文件以及示例:http://itextsupport.com/download/xfa-net.zip
但是:由于太多开发人员在没有购买商业许可的情况下在商业环境中使用AGPL版本的iTextSharp,我们决定不开源XFA Worker.您可以获得试用期的许可证密钥,但它是基于商业版iTextSharp构建的商业产品.如果您从iText Software购买许可证,XFA Worker只能在生产中使用.对于iTextSharp也是如此,但是对于iTextSharp,如果您不购买商业许可证,则没有许可证密钥可以阻止使用.对于iTextSharp,我们依靠诚实.对于XFA工作者,我们采取了一些预防措施;-)
| 归档时间: |
|
| 查看次数: |
4984 次 |
| 最近记录: |