这是我的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返回继承了“ List”的“ ElementList”。 “ IElement”的结构如下;
对HtmlConverter.ConvertToElements(html)的iText7 Html2Pdf调用返回“ IList”。但是,“ IElement”的结构如下:
我希望可以使用此结果,但是显然我对“ ct.Add(elements);”的调用由于不同的IElement结构,在上述代码中遇到了麻烦。
我知道我想在这里偷工减料(目前我别无选择);是否有一种相对简单的方法将iText7 IElement转换为iTextSharp IElement,以保留经过图像解析的HTML?
如何用解析的HTML替换acro表单字段内容?最好是在iTextSharp 5中,但我想使用最新版本会更好?
我目前有一个可以与iTextSharp 5一起愉快地工作的解决方案,该解决方案可以动态填充PDF模板。我在使用XMLWorkerHelper.ParseToElementList
时遇到了问题,因为它似乎不支持解析嵌入式图像。
我发现iText7 for .net具有名为html2pdf
的扩展名,该扩展名具有名为HtmlConverter.ConvertToElements
的方法,该方法可以完美地解析带有内嵌图像的HTML,但是结果与我的iTextSharp 5实现不兼容,并且我在努力转换它。