/** * Example written by Bruno Lowagie in answer to the following question: * http://stackoverflow.com/questions/34488212 */ package sandbox.xmlworker; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Element; import com.itextpdf.text.Utilities; import com.itextpdf.text.pdf.PdfPCell; import com.itextpdf.text.pdf.PdfPTable; import com.itextpdf.text.pdf.PdfWriter; import com.itextpdf.tool.xml.XMLWorkerHelper; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import sandbox.WrapToTest; @WrapToTest public class List_Clean { public static final String DEST = "results/xmlworker/list_clean.pdf"; public static final String HTML = "resources/xml/list_clean.html"; public static void main(String[] args) throws IOException, DocumentException { File file = new File(DEST); file.getParentFile().mkdirs(); new List_Clean().createPdf(DEST); } /** * Creates a PDF with the words "Hello World" * @param file * @throws IOException * @throws DocumentException */ public void createPdf(String file) throws IOException, DocumentException { // step 1 Document document = new Document(); // step 2 PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(file)); writer.setInitialLeading(12); // step 3 document.open(); // step 4 XMLWorkerHelper.getInstance().parseXHtml(writer, document, new FileInputStream(HTML)); String html = Utilities.readFileToString(HTML); String css = "ul { list-style: disc } li { padding: 10px }"; PdfPTable table = new PdfPTable(1); table.setSpacingBefore(20); PdfPCell cell = new PdfPCell(); for (Element e : XMLWorkerHelper.parseToElementList(html, css)) { cell.addElement(e); } table.addCell(cell); document.add(table); // step 5 document.close(); } }