Я не понимаю, почему это происходит и как я могу его исправить. Вот мой код, хотя он сильно отредактирован из -за NDAS (извините за это) < /p>
Код: Выделить всё
public static class MyClass
{
public static MemoryStream FillText(Stream input, Array values)
{
// open up document as stream
// .....
doc.AcroForm.Elements.SetBoolean("/NeedAppearances", true);
if (doc.AcroForm.Fields != null && doc.AcroForm.Fields.Count() > 0)
ChangeInputValue(doc.AcroForm.Fields, values);
// Save Document
// .....
}
private static void ChangeInputValue(PdfAcroField.PdfAcroFieldCollection fields, Array values)
{
for (int i = 0; i < fields.Count(); i++)
{
var field = fields[i];
if (field == null) continue;
var shortName = field.Elements.GetString("/T");
field.Value = new PdfString(values[i]);
if (field.Elements.ContainsKey("/AP"))
field.Elements.Remove("/AP");
}
}
}
< /code>
Есть ли что -то не так с моим подходом? С пробкой и ошибкой я заметил, что если я прокомментирую строку для назначения (field.value = ...), PDF показывает данные по умолчанию, которую она была заполнена, но, очевидно, мое новое значение не присутствует. < /P>
Почему это происходит и как я могу его исправить? Xfa. < /P>
Я открыл PDF с блокнотом ++, сделал поиск XFA и ничего не нашел.private static bool HasXfa(PdfDocument doc) { return doc.AcroForm != null && doc.AcroForm.Elements.ContainsKey("/XFA"); }
Я также открыл свойства документа с помощью Adobe Acrobat, он ничего не упоминает о XFA. />https://limewire.com/d/kszmu#b8c1ga9qfz
Подробнее здесь: https://stackoverflow.com/questions/797 ... tent-in-ad
Мобильная версия