#itext
#itext
Вопрос:
У меня есть этот код для получения позиций на местах
PdfReader reader = new PdfReader(ssPdf);
var output = new MemoryStream();
var stamper = new PdfStamper(reader, output);
IList<AcroFields.FieldPosition> positions =stamper.AcroFields.GetFieldPositions(ssName);
и это для удаления одной прямой позиции
if (positions.count>0)
positions.RemoveAt(1);
Но тогда у меня нет никакого способа установить список позиций полей на штамп.
Если я снова вызову GetFieldPositions, он вернет все поля, и не без того, которое я удалил
IList<AcroFields.FieldPosition> positions2 = stamper.AcroFields.GetFieldPositions(ssName);
stamper.Close();
reader.Close();
Комментарии:
1. Визуализация (виджет) поля — это нечто большее, чем просто его положение, но элементы списка больше не связаны с виджетами. Таким образом, манипулирование списком вообще не приводит к каким-либо изменениям. Чего вы на самом деле хотите достичь? Вы хотите удалить один виджет? Или все поле?
2. Один единственный (виджет) / позиция
3. Если этот виджет можно описать как «виджет поля на странице X», вы можете использовать
AcroFields.RemoveField(String name, int page)
. Если это не может быть описано таким образом, все становится низкоуровневым; в этом случае вы можете использовать код этого метода в качестве шаблона.