Legacy notice!

iText 5 is the previous major version of iText’s leading PDF SDK. iText 5 is EOL, and is no longer developed, although we still provide support and security fixes. Switch your project to iText 8, our latest version which supports the latest PDF standards and technologies.
Check related iText 8 content!

I am using iText in Java to convert a HTML to PDF. I want a particular paragraph which has some words as Bold and some as Bold+Underlined to be passed as a string to the Java code and to be converted to PDF using the iText library. I am unable to find a suitable method for this. How should I do this?

Posted on StackOverflow on Jun 4, 2014 by Anuranjan

If you want to convert XHTML to PDF, you need iText + XML Worker.

The most simple examples looks like this:

public void createPdf(String file) throws IOException, DocumentException {
    // step 1
    Document document = new Document();
    // step 2
    PdfWriter writer =
        PdfWriter.getInstance(document, new FileOutputStream(file));
    // step 3
    // step 4
    XMLWorkerHelper.getInstance().parseXHtml(writer, document,
            new FileInputStream(HTML));
    // step 5

Note that the HTML file is passed as a FileInputStream in this case. You want to pass a String. This means you'll have to do something like this:

XMLWorkerHelper.getInstance().parseXHtml(writer, document,
        new StringReader("<p>The <b>String</b> I want to render to PDF</p>"));

There are more complex examples available in case you need support for images, special fonts, and so on.