У меня есть форма 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();
}
}
pdfdoc
). - person mkl   schedule 18.06.2020xfa.FillXfaForm
просто пытается заменить данные XFA в наборах данных / данных - уверены ли вы, что JS в вашем XFA ожидает и принимает такие изменения? По-видимому, иногда Adobe включает недокументированные части в XFA XML и требует, чтобы он постоянно обновлялся, например, этот ответ, в частностиchecksum
Бруно спросил о здесь. - person mkl   schedule 19.06.2020