Это мой код iText5, который делает то, что мне раньше требовалось, с помощью фрагментов HTML;
//GetFieldPositions returns an array of field positions if you are using 5.0 or greater
rectangle = pdfStamper.AcroFields.GetFieldPositions(field.Key)[0].position;
//tell itextSharp to overlay this content
PdfContentByte contentBtye = pdfStamper.GetOverContent(1);
var elements = XMLWorkerHelper.ParseToElementList(pdfPlaceHolderData[key].ToString(), null);
ColumnText ct = new ColumnText(contentBtye);
ct.SetSimpleColumn(rectangle.Left, rectangle.Bottom, rectangle.Right, rectangle.Top);
ct.Add(elements);
ct.Go(false);
pdfFormFields.SetField(field.Key, string.Empty);
Я изо всех сил пытаюсь понять, как преобразовать это для работы в iText7 .NET.
XMLWorkerHelper.ParseToElementList возвращает «ElementList», который наследует «List». «Элемент» имеет следующую структуру:
Вызов iText7 Html2Pdf для HtmlConverter.ConvertToElements (html) возвращает «IList». Однако «Элемент» теперь структурирован следующим образом:
Я надеялся, что смогу просто использовать этот результат, но, очевидно, мой вызов 'ct.Add (elements);' в приведенном выше коде дроссели из-за различной структуры IElement.
Я знаю, что здесь пытаюсь срезать углы (в данный момент у меня нет выбора); Есть ли относительно простой способ конвертировать элемент iText7 в элемент iTextSharp, который сохранит мой хорошо проанализированный HTML с изображениями?
Как заменить вместо замены содержимого поля формы acro HTML-код? Это предпочтительно было бы в iTextSharp 5, но я полагаю, было бы еще лучше, используя последнюю версию?
В настоящее время у меня есть решение, успешно работающее с iTextSharp 5, которое позволяет динамически заполнять шаблоны PDF. Я столкнулся с проблемой при использовании XMLWorkerHelper.ParseToElementList
, поскольку он не поддерживает синтаксический анализ встроенных изображений.
Я обнаружил, что iText7 для .net имеет расширение под названием html2pdf
, которое имеет метод с именем HtmlConverter.ConvertToElements
, который отлично разбирает HTML со встроенными изображениями, однако результат не совместим с моей реализацией iTextSharp 5, и я изо всех сил в пытаясь преобразовать это.