I am trying to convert some elements (labels) that my html contains into span and be able to extract the position (coordinates) from them. Could you please help me as I am new to iText 7:
My code is:
ConverterProperties properties = new ConverterProperties(); properties.SetTagWorkerFactory(new CustomTagWorker()); IList elements = HtmlConverter.ConvertToElements(html, properties); foreach (IElement element in elements) { document.Add((IBlockElement) element); } document.Close();
Custom tag workers:
private class CustomSpanTagWorker : iText.Html2pdf.Attach.Impl.Tags.SpanTagWorker { public CustomSpanTagWorker(iText.StyledXmlParser.Node.IElementNode element, iText.Html2pdf.Attach.ProcessorContext context) : base(element, context) { } public override void ProcessEnd(iText.StyledXmlParser.Node.IElementNode element,iText.Html2pdf.Attach.ProcessorContext context) { base.ProcessEnd(element, context); string nombre = element.Name(); IList elementResult = GetAllElements(); if (elementResult != null ) { foreach (iText.Layout.IPropertyContainer item in elementResult) { base.ProcessEnd(element, context); } } } }
DefaultTagWorkerFactory:
if (tag.Name().Equals(iText.Html2pdf.Html.TagConstants.STRONG, StringComparison.OrdinalIgnoreCase)) { return new CustomSpanTagWorker(tag, context); }