java Word 轉 PDF格式

FH-Admin 發表於 2021-07-22
Java

新增maven依賴

<dependency>
    <groupId>e-iceblue</groupId>
    <artifactId>spire.doc</artifactId>
    <version>2.2.0</version>
</dependency>

轉換程式碼如下

String fromFile = "E:/test.docx";
String toFile = "E:/test.pdf";
Document document = new Document();
document.loadFromFile(fromFile);
document.saveToFile(toFile, FileFormat.PDF);

注:免費版有檔案大小限制,可以替換成正式版,但是正式版有版權提示如下,內容不受影響

Evaluation Warning: The document was created with Spire.Doc for JAVA.
經測試,新版本只能列印10頁,且每頁都有水印,舊版本2.2.0可正常使用

下面方法可完美刪除版權資訊

<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itextpdf</artifactId>
    <version>5.5.11</version>
</dependency>
Document document = new Document();
//空白文件,用來將版權資訊列印到這上面
document.loadFromFile("E:/temp.docx");
//真實文件 fhadmin.cn
document.insertTextFromFile("E:/test.doc",FileFormat.Auto);
//輸出為PDF
document.saveToFile("E:/test.pdf",FileFormat.PDF);
PdfReader reader = new PdfReader("E:/test.pdf");
//刪除帶版權資訊的第一頁,並重新輸出為PDF fhadmin.cn
List<String> pages = new ArrayList<>();
for(int i = 2;i <= reader.getNumberOfPages();i++){
    pages.add(String.valueOf(i));
}
reader.selectPages(StringUtils.join(pages,","));
PdfStamper stamp = new PdfStamper(reader, new FileOutputStream("E:/test2.pdf"));
stamp.close();
reader.close();
本作品採用《CC 協議》,轉載必須註明作者和本文連結