java代码实现PDF转DOC文档
生活随笔
收集整理的這篇文章主要介紹了
java代码实现PDF转DOC文档
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 前言
- 一、快速無格式版本
- 二、保留格式轉換
前言
每次遇到PDF文件時,總有把它轉為Word文檔的沖動,也時常會有這種轉換的必要。通常的做法可能會是去開個PDF編輯器的會員啥的,某次突然覺得作為程序員為何不自己寫段代碼來實現PDF——>word的轉換呢?當然自己寫這個代碼未免也是太過草率,遍尋網上眾多方式,也算是有所收獲,以下版本亦是借鑒一些大師的寫法。
一、快速無格式版本
轉換速度快,轉換后的文檔無PDF中的格式和圖片,某些文檔會出錯(**暫未深究具體影響因素** )。代碼示例
import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.text.PDFTextStripper;import java.io.*; public class PdfAndWordByNoImage {public static void pdfToWord(String pdfInputFile) throws Exception {System.out.println("轉換開始......");long startTime = System.currentTimeMillis();PDDocument doc = PDDocument.load(new File(pdfInputFile));int pagenumber = doc.getNumberOfPages();//獲取總頁數System.out.println("獲取總頁數:"+pagenumber);FileOutputStream fos = null;try {fos = new FileOutputStream(pdfInputFile.substring(0, pdfInputFile.indexOf(".")) + ".doc");} catch (FileNotFoundException e) {e.printStackTrace();}Writer writer = null;try {writer = new OutputStreamWriter(fos, "UTF-8");//文件按字節讀取,然后按照UTF-8的格式編碼顯示} catch (UnsupportedEncodingException e) {e.printStackTrace();}PDFTextStripper stripper = new PDFTextStripper();//生成PDF文檔內容剝離器stripper.setSortByPosition(true);//排序stripper.setStartPage(1);//設置轉換的開始頁stripper.setEndPage(pagenumber);//設置轉換的結束頁try {stripper.writeText(doc, writer);writer.close();doc.close();} catch (IOException e) {e.printStackTrace();}System.out.println("執行完畢,耗時:"+(System.currentTimeMillis()-startTime)+"ms,......");}public static void main(String[] args) throws Exception {String pdfInputFile = "F:\\workSpace\\數據不說謊:大數據的世界.pdf";pdfToWord(pdfInputFile);}依賴包:
<dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.2</version><type>pom</type></dependency><dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.11</version></dependency><dependency><groupId>org.apache.pdfbox</groupId><artifactId>jbig2-imageio</artifactId><version>3.0.1</version></dependency><dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox-tools</artifactId><version>2.0.11</version></dependency><dependency><groupId>org.apache.pdfbox</groupId><artifactId>fontbox</artifactId><version>2.0.11</version></dependency>二、保留格式轉換
可基本保留原格式及圖片輸出,轉換速度有點慢。
代碼示例
import com.spire.pdf.FileFormat; import com.spire.pdf.PdfDocument; public class PdfToWordByHaveImage {public static void pdfTodoc(String fileInputPath,String fileOutPutPath){PdfDocument pdf = new PdfDocument();System.out.println("開始加載PDF文件...");long startTime = System.currentTimeMillis();pdf.loadFromFile(fileInputPath);long endTime1 = System.currentTimeMillis();// 保存為Word格式Long diff = endTime1-startTime;System.out.println("文件加載完畢,耗時:"+String.format("%.4f",diff.doubleValue()/1000)+"s,開始執行轉換...");pdf.saveToFile(fileOutPutPath,FileFormat.DOCX);long endTime2 = System.currentTimeMillis();Long diff2 = endTime2-endTime1;System.out.println("文件轉換完畢,耗時:"+String.format("%.4f",diff2.doubleValue()/1000)+"s,...");}public static void main(String[] args) {String fileInputPath = "F:\\workSpace\\移動金融.pdf";String fileOutPutPath = "F:\\workSpace\\移動金融.doc";pdfTodoc(fileInputPath,fileOutPutPath);System.out.println("ok");} }依賴jar包
spire.pdf-3.7.4.jar
溫馨提示:以上內容僅供參考,如有問題,請多指正!
.
學習無極限,不負時光,未來可期!
總結
以上是生活随笔為你收集整理的java代码实现PDF转DOC文档的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 20220521 将plecs输出的电路
- 下一篇: Python实现PDF复制自动去除换行及