我有一个动态组合的 Adobe LiveCycle 表单。我们需要将 XML 数据加载到这个表单中。我用 IText 试过了,它奏效了。但是在填写表格后,它就失去了交互性。如何填写表单,以便它在打开时仍然生成字段并执行其背后的 JavaScript?对于填充,我使用了以下代码片段(模板 Itext):
public class FillXFA
{
public static readonly String DEST = "dest/path";
public static readonly String SRC = "src/path";
public static readonly String XML = "xml/path";
public static void Main(String[] args)
{
FileInfo file = new FileInfo(DEST);
file.Directory.Create();
new FillXFA().ManipulatePdf(DEST);
}
protected void ManipulatePdf(string dest)
{
PdfDocument pdfdoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest));
PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfdoc, true);
XfaForm xfa = form.GetXfaForm();
// Method fills this object with XFA data under datasets/data.
xfa.FillXfaForm(new FileStream(XML, FileMode.Open, FileAccess.Read));
xfa.Write(pdfdoc);
pdfdoc.Close();
}
}