Как я могу установить данные XFA в статической форме XFA в iTextSharp и получить их для сохранения?
У меня очень странная проблема с формами XFA в iText / iTextSharp (iTextSharp 5.3.3 через NuGet). Я пытаюсь заполнить статическую форму в стиле XFA, но мои изменения не принимаются.
У меня есть оба выпуска iText в действии, и я консультировался со вторым выпуском, а также с примерами преобразования кода в iTextSharp из книги.
Справочная информация: у меня есть форма XFA, которую я могу заполнить вручную с помощью Adobe Acrobat на моем компьютере. Используя iTextSharp, я могу прочитать, что такое данные Xfa XML, и увидеть структуру данных. По сути, я пытаюсь имитировать это с помощью iText.
Как выглядят данные, когда я добавляю данные и сохраняю их в Acrobat (примечание: это только специальный раздел для наборов данных)
Вот файл XML, который я пытаюсь прочитать, чтобы заменить существующие данные (примечание: это весь контекст этого файла):
Однако, когда я передаю путь к XML-файлу замены и пытаюсь установить данные, создается новый файл (копия оригинала с замененными данными) без каких-либо ошибок, но данные не обновляются. Я вижу, что новый файл создан, и я могу открыть его, но в нем нет данных.
Вот код, который используется для замены данных или заполнения в первый раз, что является вариациейhttp://sourceforge.net/p/itextsharp/code/HEAD/tree/trunk/book/iTextExamplesWeb/iTextExamplesWeb/iTextInAction2Ed/Chapter08/XfaMovie.cs
public void Generate(string sourceFilePath, string destinationtFilePath, string replacementXmlFilePath)
{
PdfReader pdfReader = new PdfReader(sourceFilePath);
using (MemoryStream ms = new MemoryStream())
{
using (PdfStamper stamper = new PdfStamper(pdfReader, ms))
{
XfaForm xfaForm = new XfaForm(pdfReader);
XmlDocument doc = new XmlDocument();
doc.Load(replacementXmlFilePath);
xfaForm.DomDocument = doc;
xfaForm.Changed = true;
XfaForm.SetXfa(xfaForm, stamper.Reader,, stamper.Writer);
}
var bytes = ms.ToArray();
File.WriteAllBytes(destinationtFilePath, bytes);
}
}
Любая помощь будет очень высоко ценится.