iText 5

How to make a particular sub-string Bold when converting HTML to PDF?

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 document.open(); // step 4 XMLWorkerHelper.getInstance().parseXHtml(writer, document, new FileInputStream(HTML)); // step 5 document.close(); }

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.