iTextSharp font tag not working with XMLWorker class

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

iTextSharp font tag not working with XMLWorker class

salman
Hi

I’m using itextsharp 5.3.5 and xml worker to generate the PDF from my html page. In my html page I have a rich text editor which generate the html using the div tags and font tags. Please see the below html piece generated by my field.

<html xml:space="preserve" xmlns="http://www.w3.org/1999/xhtml"><div>this text is not <strong>working</strong></div>
<div>text in Red now.</div>
<div>a font thoma and size 5.</div>
<div>here is a link to Google.</div></html>

I found that if I use html worker instead then it converts the above html perfectly in pdf. But not the xml worker. It just didn’t work.

I also found that if I change some of the tags and update my html like below, then xml worker converts it in pdf.

<p>this text is not <strong>working</strong></p>
text in Red now.
        <br />
        a font thoma and size 5.
        <br/>
       
          here is a link to
            Google
         
.
       

        <br />

Now obviously I can’t change the html tags on run time, it will be a big mess. My code is as below.

StringReader html = new StringReader(htmlString);
var xmlWorkerFontProvider = new XMLWorkerFontProvider();
var cssAppliers = new CssAppliersImpl(xmlWorkerFontProvider);
CssFilesImpl cssFiles = new CssFilesImpl();
cssFiles.Add(XMLWorkerHelper.GetInstance().GetDefaultCSS());
StyleAttrCSSResolver cssRevolver = new StyleAttrCSSResolver();
HtmlPipelineContext htmlContext = new HtmlPipelineContext(cssAppliers);
htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory());
PdfWriterPipeline pdfWriterPipeline = new PdfWriterPipeline(document, writer);
IPipeline pipeline = new CssResolverPipeline(cssRevolver, new HtmlPipeline(htmlContext, pdfWriterPipeline));
XMLWorker worker = new XMLWorker(pipeline, true);                
XMLParser xmlParser = new XMLParser(worker);
xmlParser.Parse(html);

I would really appreciate if you can guide me, how I can convert the above html in pdf using the xml worker.

If you need any further information, please do let me know.
Loading...