Table of Contents
Xml to Pdf:
We can convert any xml file to pdf in java using iText lib.
Required Jar Files:
Xml File: (Sample xml file – to convert to pdf file)
<?xml version="1.0"?> <XMLtoPDF> <Friend> <FriendName>Hemakumar</FriendName> <FriendPlace>Arcot</FriendPlace> </Friend> <Friend> <FriendName>Chudar</FriendName> <FriendPlace>Vellore</FriendPlace> </Friend> <Friend> <FriendName>Selva kumar</FriendName> <FriendPlace>Arcot</FriendPlace> </Friend> </XMLtoPDF>
Xsl File (stylesheet for the above xml):
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method='html' version='1.0' encoding='UTF-8' indent='yes'/> <xsl:template match="/"> <html> <body> <h2>Xml 2 Pdf in Java Using iText</h2> <table border="1"> <tr bgcolor="skyblue"> <th align="left">Friend's Name</th> <th align="left">Friend's Place</th> </tr> <xsl:for-each select="XMLtoPDF/Friend"> <tr> <td><xsl:value-of select="FriendName"/></td> <td><xsl:value-of select="FriendPlace"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
Java Program which converts the xml file to pdf file:
package com.ngdeveloper; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; import org.dom4j.DocumentException; import org.xhtmlrenderer.pdf.ITextRenderer; public class Xml2Pdf { public static void main(String[] args) throws IOException, DocumentException, TransformerException, TransformerConfigurationException, FileNotFoundException { TransformerFactory tFactory = TransformerFactory.newInstance(); // specify the input xsl file location to apply the styles for the pdf // output file Transformer transformer = tFactory.newTransformer(new StreamSource("D:\\javadomain.xsl")); // specify the input xml file location transformer.transform(new StreamSource("D:\\javadomain.xml"), new StreamResult(new FileOutputStream("D:\\javadomain.html"))); // Specifying the location of the html file (xml converted to html) String File_To_Convert = "D:\\javadomain.html"; String url = new File(File_To_Convert).toURI().toURL().toString(); System.out.println("" + url); // Specifying the location of the outpuf pdf file. String HTML_TO_PDF = "D:\\PdfFromXml.pdf"; OutputStream os = new FileOutputStream(HTML_TO_PDF); ITextRenderer renderer = new ITextRenderer(); renderer.setDocument(url); renderer.layout(); renderer.createPDF(os); os.close(); } }