Я, наконец, успешно понял, как заполнить PDF форму XFA своими пользовательскими данными, используя iTextSharp.Форма PDF XFA только для чтения с iTextSharp
Проблема в том, что я потерял код, который у меня был, что позволило мне сделать XFA только для чтения. Я сделал ужасную ошибку, изменив свой код, прежде чем переносить рабочую версию в исходный элемент управления. А теперь, после поиска Google, как за час я до сих пор не могу найти :(Если кто-то может напомнить мне о коде, который будет высоко ценится.
PdfReader.unethicalreading = true;
PdfReader reader = new PdfReader(pdfFileName);
PdfStamper stamper = new PdfStamper(reader, ms);
XfaForm xfa = new XfaForm(reader);
XmlDocument doc = new XmlDocument();
doc.LoadXml(CreateXmaData(XDocument.Parse(xfa.DomDocument.InnerXml)));
xfa.DomDocument = doc;
xfa.Changed = true;
XfaForm.SetXfa(xfa, stamper.Reader, stamper.Writer);
PdfAction action = new PdfAction(PdfAction.PRINTDIALOG);
stamper.Writer.SetOpenAction(action);
// Somewhere here I had the code that made my XFA form read only...
stamper.Writer.CloseStream = false;
stamper.Close();
reader.Close();
byte[] buffer = new byte[ms.Position];
ms.Position = 0;
ms.Read(buffer, 0, buffer.Length);
return buffer;