This post will describes how to convert word document to PDF using Java.
To convert document to Pdf we will have different type of approaches.
But in this post i am using docx4j. It is one of the good API for conversion from XSLT to PDF and Word Document to PDF etc..
We can convert from document to Pdf with Simple java program.
Steps to follow.
Step1 :open Eclipse and create new java project- provide name as you like.
Step 2: Create new Java class which ever you like (ex: ConvertDocToPDF )
Step 3: Paste the below lines of code inside main method of created java class
try { long start = System.currentTimeMillis(); // 1) Load DOCX into WordprocessingMLPackage InputStream is = new FileInputStream(new File("test.docx")); WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(is); //If your header and body information got over lapped then use the below code List sections = wordMLPackage.getDocumentModel().getSections(); for (int i = 0; i < sections.size(); i++) { System.out.println("sections Size" + sections.size()); wordMLPackage.getDocumentModel().getSections().get(i).getPageDimensions().setHeaderExtent(3000); } //if you want use any Physical fonts then use the below code. Mapper fontMapper = new IdentityPlusMapper(); PhysicalFont font = PhysicalFonts.getPhysicalFonts().get("Comic Sans MS"); fontMapper.getFontMappings().put("Algerian", font); wordMLPackage.setFontMapper(fontMapper); // 2) Prepare Pdf settings PdfSettings pdfSettings = new PdfSettings(); // 3) Convert WordprocessingMLPackage to Pdf org.docx4j.convert.out.pdf.PdfConversion conversion = new org.docx4j.convert.out.pdf.viaXSLFO.Conversion(wordMLPackage); OutputStream out = new FileOutputStream(new File("test.pdf")); conversion.output(out,pdfSettings); System.err.println("Time taken to Generate pdf "+ (System.currentTimeMillis() - start) + "ms"); } catch (Throwable e) { e.printStackTrace(); }
Step 4: Now you can run the Java program, PDF will be generate for your Document file.