Word轉pdf
阿新 • • 發佈:2021-11-30
Word轉pdf
1、匯入依賴
1.1 下載依賴(兩個依賴已經打包好了)
依賴下載地址: https://files.cnblogs.com/files/blogs/605855/lib.rar
下載下來之後:
1.2 安裝到本地maven庫中
mvn install:install-file -DgroupId=com.aspose.words -DartifactId=aspose-words-jdk16 -Dversion=14.9.0 -Dpackaging=jar -Dfile=aspose-words-14.9.0-jdk16.jar mvn install:install-file -DgroupId=com.aspectjweaver -DartifactId=aspectjweaver -Dversion=1.9.1 -Dpackaging=jar
1.3 在pom.xml中引入依賴
<dependencies> <dependency> <groupId>com.aspectjweaver</groupId> <artifactId>aspectjweaver</artifactId> <version>1.9.1</version> </dependency> <dependency> <groupId>com.aspose.words</groupId> <artifactId>aspose-words-jdk16</artifactId> <version>14.9.0</version> </dependency> </dependencies>
2、編寫程式碼(需要水印功能,解開註釋即可)
public class Word2PdfUtil { /** * * @param toFilePath 資料夾路徑 * @param fileName 檔名 * @param type 檔案型別(字尾 例如 .doc) * @return * @throws Exception */ public static String file2pdf(String toFilePath, String fileName, String type ) throws Exception { String htmFileName; //獲取轉換成PDF之後檔名 if(".doc".equals(type)){ htmFileName = fileName+".pdf"; }else if(".docx".equals(type)){ htmFileName = fileName+".pdf"; }else{ return null; } //通過轉換之後的PDF檔名,建立PDF檔案 File htmlOutputFile = new File(toFilePath + File.separatorChar + htmFileName); //獲取檔案輸出流 FileOutputStream os = new FileOutputStream(htmlOutputFile); //獲取Doc文件物件模型 Document doc = new Document(toFilePath+ File.separatorChar + fileName+type); //為doc文件新增水印 // insertWatermarkText(doc, "cpeccsw"); //將doc文旦轉換成PDF檔案並輸出到之前建立好的pdf檔案中 doc.save(os, SaveFormat.PDF); //關閉輸出流 if(os!=null){ os.close(); } return htmFileName; } /** * 為word文件新增水印 * @param doc word文件模型 * @param watermarkText 需要新增的水印欄位 * @throws Exception */ // private static void insertWatermarkText(Document doc, String watermarkText) throws Exception { // Shape watermark = new Shape(doc, ShapeType.TEXT_PLAIN_TEXT); // //水印內容 // watermark.getTextPath().setText(watermarkText); // //水印字型 // watermark.getTextPath().setFontFamily("宋體"); // //水印寬度 // watermark.setWidth(500); // //水印高度 // watermark.setHeight(100); // //旋轉水印 // watermark.setRotation(-40); // //水印顏色 // watermark.getFill().setColor(Color.lightGray); // watermark.setStrokeColor(Color.lightGray); // watermark.setRelativeHorizontalPosition(RelativeHorizontalPosition.PAGE); // watermark.setRelativeVerticalPosition(RelativeVerticalPosition.PAGE); // watermark.setWrapType(WrapType.NONE); // watermark.setVerticalAlignment(VerticalAlignment.CENTER); // watermark.setHorizontalAlignment(HorizontalAlignment.CENTER); // Paragraph watermarkPara = new Paragraph(doc); // watermarkPara.appendChild(watermark); // for (Section sect : doc.getSections()) // { // insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_PRIMARY); // insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_FIRST); // insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_EVEN); // } // System.out.println("Watermark Set"); // } /** * 在頁首中插入水印 * @param watermarkPara * @param sect * @param headerType * @throws Exception */ // private static void insertWatermarkIntoHeader(Paragraph watermarkPara, Section sect, int headerType) throws Exception{ // HeaderFooter header = sect.getHeadersFooters().getByHeaderFooterType(headerType); // if (header == null) // { // header = new HeaderFooter(sect.getDocument(), headerType); // sect.getHeadersFooters().add(header); // } // header.appendChild(watermarkPara.deepClone(true)); // } }