You can easily add some methods below to read HTML content from a file and convert the HTML file to PDF ( instead of HTML string to PDF).
package g.t.test; import org.xhtmlrenderer.pdf.ITextRenderer; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; public class HtmlToPDFConverter { public static void convert(String htmlContent, File pdfFile) throws Exception { ByteArrayOutputStream os = new ByteArrayOutputStream(); //step1: render html to memory
ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(htmlContent);
renderer.layout();
renderer.createPDF(os);
//step2: conver to byte array stream
byte[] pdfAsBytes = os.toByteArray();
os.close();
//step3: write byte array stream to file
FileOutputStream fos = new FileOutputStream(pdfFile);
fos.write(pdfAsBytes);
fos.flush();
fos.close();
}
// let's test !!
public static void main(String[] args) throws Exception{
convert("<html> <body> " +
"<h1>Hello Crazy World !!</h1> <br/> " +
"<h2> I hope you are doing great.</h2> " +
"</body> </html>", new File("test.pdf"));
}
}
Used Maven Dependencies:
<dependency> <groupId>com.lowagie</groupId> <artifactId>itext</artifactId> <version>2.1.7</version> </dependency> <dependency> <groupId>org.xhtmlrenderer</groupId> <artifactId>flying-saucer-pdf</artifactId> <version>9.0.9</version> </dependency>
No comments:
Post a Comment
Your Comment and Question will help to make this blog better...