Java實現各種檔案轉PDF(使用OpenOffice)
最近遇到一個學習平臺的專案,涉及到各種文件,為了站點資源的安全性,文件全部需要轉成pdf,只供使用者瀏覽。翻閱了很多資料,看了一個博主寫的使用open office實現的方式,簡單明瞭,這裡也分享一下。
這裡介紹在win環境下的openoffice使用。
百度搜索:open office就可以找到下載檔案。安裝後,啟動服務就可以使用了。
程式碼:
demo下載地址: http://download.csdn.net/download/qq_17770183/10156416 參考博文url: http://titanseason.iteye.com/blog/1471606/** * 將Office文件轉換為PDF. 執行該函式需要用到OpenOffice, OpenOffice下載地址為 * http://www.openoffice.org/ * * <pre> * 方法示例: * String sourcePath = "F:\\office\\source.doc"; * String destFile = "F:\\pdf\\dest.pdf"; * Converter.office2PDF(sourcePath, destFile); * </pre> * * @param sourceFile * 原始檔, 絕對路徑. 可以是Office2003-2007全部格式的文件, Office2010的沒測試. 包括.doc, * .docx, .xls, .xlsx, .ppt, .pptx, .txt 等. 示例: F:\\office\\source.doc * @param destFile * 目標檔案. 絕對路徑. 示例: F:\\pdf\\dest.pdf * @return 操作成功與否的提示資訊. 如果返回 -1, 表示找不到原始檔, 或url.properties配置錯誤; 如果返回 0, * 則表示操作成功; 返回1, 則表示轉換失敗 */ public static int office2PDF(String sourceFile, String destFile) { try { File inputFile = new File(sourceFile); if (!inputFile.exists()) { return -1;// 找不到原始檔, 則返回-1 } // 如果目標路徑不存在, 則新建該路徑 File outputFile = new File(destFile); if (!outputFile.getParentFile().exists()) { outputFile.getParentFile().mkdirs(); } String OpenOffice_HOME = "C:\\Program Files (x86)\\OpenOffice 4";//這裡是OpenOffice的安裝目錄, 在我的專案中,為了便於拓展介面,沒有直接寫成這個樣子,但是這樣是絕對沒問題的 // 如果從檔案中讀取的URL地址最後一個字元不是 '\',則新增'\' if (OpenOffice_HOME.charAt(OpenOffice_HOME.length() - 1) != '\\') { OpenOffice_HOME += "\\"; } // 啟動OpenOffice的服務 String command = OpenOffice_HOME + "program\\soffice.exe -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\""; Process pro = Runtime.getRuntime().exec(command); // connect to an OpenOffice.org instance running on port 8100 OpenOfficeConnection connection = new SocketOpenOfficeConnection( "127.0.0.1", 8100); connection.connect(); // convert DocumentConverter converter = new OpenOfficeDocumentConverter( connection); converter.convert(inputFile, outputFile); // close the connection connection.disconnect(); // 關閉OpenOffice服務的程序 pro.destroy(); return 0; } catch (FileNotFoundException e) { e.printStackTrace(); return -1; } catch (ConnectException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return 1; }
相關推薦
Java實現各種檔案轉PDF(使用OpenOffice)
最近遇到一個學習平臺的專案,涉及到各種文件,為了站點資源的安全性,文件全部需要轉成pdf,只供使用者瀏覽。翻閱了很多資料,看了一個博主寫的使用open office實現的方式,簡單明瞭,這裡也分享一下。 這裡介紹在win環境下的openoffice使用。 百度搜索:open
java實現各種資料統計圖(柱形圖,餅圖,折線圖)
最近在做資料探勘的課程設計,需要將資料分析的結果很直觀的展現給使用者,這就要用到資料統計圖,要實現這個功能就需要幾個第三方包了: 1. jfreechart-1.0.13.jar 2. jcommon-1.0.16.jar 3. gnuj
JAVA實現開啟檔案對話方塊(可以指定所需開啟檔案的格式)
package com.test.filetest; import java.io.File; import javax.swing.JFileChooser; import javax.swing.filechooser.FileFilter; public clas
java實現簡單二維迷宮(2)
blog 成員 new 構建 push port ava amp use 這次是改良版本。 將地圖封裝,老鼠封裝。是對Java基礎的一個練習吧。 這次實現也遇到了一些問題。主要是棧。封裝的mouse類中有成員變量i,j代表了老鼠的坐標。將mouse類對象m入棧的時候,總是入
8皇后以及N皇后演算法探究,回溯演算法的JAVA實現,遞迴方案(一)
八皇后問題,是一個古老而著名的問題,是回溯演算法的典型案例。該問題是國際西洋棋棋手馬克斯·貝瑟爾於1848年提出:在8×8格的國際象棋上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行、同一列或同一斜線上,問有多少種擺法。 高斯認為有76種方案。1854年在柏林的象棋雜誌
Java實現平衡二叉樹(AVLTree)的構建
最近在學習資料結構上關於平衡二叉樹的知識,看了嚴老師的思路,感覺用java寫出遞迴的構建方式有點困難,因為其中的遞迴需要把引用傳進去,所以感覺是要實現起來比較麻煩,所以就首先想到使用非遞迴的方式來實現構建平衡二叉樹。 使用非遞迴的方式,思路也很
用java實現字母的大小寫轉換(ASCII)
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in);
java 單鏈表list 轉置(反轉) 普通與遞迴
單鏈表的轉置 (反轉) 普通方法 通過迴圈與臨時變數來轉置 優點是節省記憶體開銷 public void commonReverse(){ Node curr = head; Node reve = null; while(curr
Java實現Redis的雜湊(Hash)命令
本編文章知識簡單的實現了redis 的增刪改查,指令不是很全還請大家見諒 package com.huadian.Hash; import com.huadian.redisUntil.JedisPoolUntil; import org.junit.After; i
java實現二叉搜尋樹(BST)包含增刪和遍歷操作
二叉搜尋樹基本知識可以看演算法導論第三版163頁,也可以百度搜索下,程式碼如下: package com.ma.al.binaryTree; /** * @author xiaoma * */ public class MyBinarySearchTree {
用Java實現面向物件程式設計(入門)(四)
四、■介面1、介面中的屬性都是全域性靜態常量,介面中的方法都是全域性抽象方法,介面中沒有構造方法。 ★Java中實現介面的定義語法和類實現介面的語法如下:∵[修飾符] interface 介面名 extends 父介面1,父介面2,……{//常量定義//方法定義 }∴cl
java實現自動化測試介面訪問(一)
一、前置準備: 二、程式碼實現 1. 使用PostMan輸入訪問的介面,取得需要的欄位,items,和items中repository的欄位id,和full_name(可以自己獲取想要的欄位)
Java 實現String語句的執行(Jexl)
咖啡 -c literal apache money ram class title auto https://www.jianshu.com/p/1000719e49fa 1.maven 導入庫 <dependency> <groupId>o
Java 讀取圖片檔案的型別(MimeType)
一、問題描述 在專案開發的時候,我們經常會遇到一類檔案上傳的問題,就是獲取圖片是哪種格式。很多情況下,很多人都是用字尾名去判斷,如下所示。 if(filename.endsWith(".png") || filename.endsWith(".jpg")) { //儲存圖片 }else
PDF技術(一)-Java實現Office系列檔案轉PDF檔案
最近,公司要求做個檔案轉pdf的調研報告,於是在網上找了一些實現方法,現在將這些方法做個對比,並記錄下來,以後或許有用呢,哈哈。 首先說一下需求,產品要求不能使用第三方軟體實現,因為這種實現方式效率不高,所以需要使用“純Java程式碼”實現。同時也對跨平臺有要求,系統需要執行在linux系統
java 實現word 轉PDF (採用第三方技術 IText、Poi、Jsoup)
先講講思路: 第一步:使用 poi 將word轉換成 html,這裡程式碼一搜一堆沒什麼好說的,千篇一律。 (值得注意的地方是IText 根據html生成pdf檔案的時候
Word轉PDF(Java實現)
目前在做一個與文件有關的專案,網上看到的都是利用OpenOffice來轉化word為pdf的,其實侷限性很大,下載那麼大一個軟體,卻只是為了它的服務。所以決定找一下有沒有別的方法,終於遇到了docx4j這個神一樣的JAR包,完美解決了我的問題!不說了,直接上程式
Java語言實現word轉PDF(10分鐘解決)
前言: 經常做OA辦公專案的同學一定和我一樣被各種線上的office操作整瘋了。基本上涉及到Java操作office的時候就會想到POI和openoffice.這兩種方案都是需要找各種jar包,然後用裡面繁雜的api。關鍵是做出來的檔案格式有各種各樣的問題,有時生成的檔案打
實現word轉pdf,HTML轉pdf(探索篇)
ner ase node eth ack line prope fin -o 筆者找依賴的jar包,找的好辛苦。 ITextRenderer、ITextFontResolver這兩個類依賴的jar包到底是哪個,還有怎麽下載?苦苦糾結了3個小時。終於找到你了!記錄個網址:ht
Java實現zip檔案壓縮(單個檔案、資料夾以及檔案和資料夾的組合壓縮)
Java實現zip檔案壓縮(單個檔案、資料夾以及檔案和資料夾的組合壓縮) 2016年10月04日 23:22:24 ljheee 閱讀數:13215 標籤: 壓縮javazip 更多 個人分類: Java應用 版權宣告:本文為博