iTextSharp升级到iText7 .NET

时间:2018-09-02 18:02:14

标签: c# itext

这是我的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”的结构如下;

iTextSharp IElement

对HtmlConverter.ConvertToElements(html)的iText7 Html2Pdf调用返回“ IList”。但是,“ IElement”的结构如下:

iText7 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实现不兼容,并且我在努力转换它。

0 个答案:

没有答案