我們使用的是永中的第三方服務、支持直接轉換文檔的線上地址,也可以直接把文檔上傳到官方服務器上
官方文檔地址:https://www.yozodcs.com/page/help.html#link152
引入jar包:
commons-logging-1.1.jar,httpclient-4.5.jar,httpcore-4.4.1.jar,httpmime-4.5.jar
或者引入maven依賴
<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging --> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.12</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.4.13</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpmime --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpmime</artifactId> <version>4.5.12</version> </dependency>
調用方法類
package com.example.demo.controller; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; import java.net.URLConnection; import org.springframework.stereotype.Controller; @Controller public class FileController { /** * 向指定 URL 發送POST方法的請求 * @param url 發送請求的 URL * @param param 請求參數,請求參數應該是 name1=value1&name2=value2 的形式。 * @return 遠程資源的響應結果 */ public static String sendPost(String url, String param) { PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL realUrl = new URL(url); // 打開和URL之間的連接 URLConnection conn = realUrl.openConnection(); conn.setRequestProperty("Accept-Charset", "UTF-8"); // 設置通用的請求屬性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); // 發送POST請求必須設置如下兩行 conn.setDoOutput(true); conn.setDoInput(true); // 獲取URLConnection對象對應的輸出流 out = new PrintWriter(conn.getOutputStream()); // 發送請求參數 out.print(param); // flush輸出流的緩沖 out.flush(); // 定義BufferedReader輸入流來讀取URL的響應 in = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("發送 POST 請求出現異常!" + e); e.printStackTrace(); } // 使用finally塊來關閉輸出流、輸入流 finally { try { if (out != null) { out.close(); } if (in != null) { in.close(); } } catch (IOException ex) { ex.printStackTrace(); } } return result; } //調用方式 public static void main(String[] args) { /** * 網絡地址轉換 * http://dcs.yozosoft.com:80/onlinefile 這是永中轉換的固定地址 * http://video.ch9.ms/build/2011/slides/TOOL-532T_Sutter.pptx 這是網上文檔的絕對路徑 * convertType 這是轉換類型參數(必須) 具體參數詳解見下方 */ String convertByUrl = sendPost("http://dcs.yozosoft.com:80/onlinefile", "downloadUrl=http://video.ch9.ms/build/2011/slides/TOOL-532T_Sutter.pptx&convertType=1"); System.out.println(convertByUrl); //返回json數據:{"result":0,"data":["http://dcs.yozosoft.com/view/2020/06/15/MjAwNjE1MTU3MzQ4MjE0.html"],"message":"轉換成功","type":1} } }
轉換成功后,直接瀏覽器打開 http://dcs.yozosoft.com/view/2020/06/15/MjAwNjE1MTU3MzQ4MjE0.html 這個鏈接即可(該鏈接時間長會失效,需要重新生成)
convertType參數取值說明
0-----文檔格式到高清html的轉換
1-----文檔格式到html的轉換
2-----文檔格式到txt的轉換
3-----文檔格式到pdf的轉換
4-----文檔格式到gif的轉換
5-----文檔格式到png的轉換
6-----文檔格式到jpg的轉換
7-----文檔格式到tiff的轉換
8-----文檔格式到bmp的轉換
9-----pdf文檔格式到gif的轉換
10----pdf文檔格式到png的轉換
11----pdf文檔格式到jpg的轉換
12----pdf文檔格式到tiff的轉換
13----pdf文檔格式到bmp的轉換
14----pdf文檔格式到html的轉換
15----html文檔格式到微軟文檔格式的轉換
16----文檔轉換多個SVG返回分頁加載頁面(模版)
17----tif文件轉成html
18----文檔轉換多個SVG
19----壓縮文件到html的轉換(模版)
20----PDF文件到html的轉換(模版)
21----ofd文件到html的轉換(模版)
22----兩個doc文檔合並
23----圖片到html的轉換
24----pdf文檔格式到txt的轉換
25----文檔按頁轉換(高清版)
26----文檔按頁轉換(標准版)
27----獲取文檔頁碼(MS文檔)
28----獲取pdf頁碼(PDF文件)
29----文檔到ofd的轉換
30----文檔到html(圖片)的轉換
31----多個pdf文檔合並
32----圖片到pdf的轉換
33----文檔到文檔的轉換
34----pdf到pdf的轉換
35----tif到html的轉換(模板)
返回參數說明:
result - 返回代碼,0成功,其他失敗
data - 請求需要返回的數據
message - 詳細信息
成功狀態下:{ "result":0,"data":"http://xxxx域名/文件地址","message":"轉換成功" }
失敗狀態下: { "result":7, "":"上傳失敗" }
result - 返回狀態碼說明
0-----轉換成功
1-----找不到指定文檔
2-----無法打開指定文檔
3-----轉換失敗
4-----轉換的文檔為加密文檔,無法轉換
5-----輸出文檔后綴錯誤
6-----授權文件過期
7-----轉換超時,內容可能不完整
8-----無效參數
17-----上傳失敗
18-----下載文件失敗
19-----文件過大
20-----下載成功
21-----刪除失敗
22-----獲取文件信息失敗
23-----URL編碼失敗
24-----生成文件名為空,有誤或重名,請檢查參數
25-----html轉pdf轉換失敗
如果要對預覽的文檔加上防復制、水印等高級功能的話,可以購買永中DCS的私有化部署服務(適合對文檔安全性要求比較高的企業),官網可以獲取價格及測試包,也可以使用永中雲轉換的高級服務,使用非常簡單便捷,如下:
瀏覽器打開:https://api.yozocloud.cn/index.html ,點擊右上角的注冊按鈕進行注冊,注冊成功后,登錄后台,再點擊域名管理進行域名的綁定,綁定成功后,會生成一個域名key,這是后面調用接口的憑證
調用方式
http://dcsapi.com/?k=域名key&url=要預覽的文件地址
例如:http://dcsapi.com/?k=1744232&url=http://58.215.166.234/example/doc/doctest.docx
注:其中文件的地址要和綁定的域名一樣。
也可以在后面可以拼接四個可選參數:
1、noCache:Boolean格式。是否強制重新轉換(忽略緩存),true為強制重新轉換,false為不強制重新轉換。
2、watermark:String格式。針對單文檔設置水印內容。
3、isCopy:Integer格式(0否1是,默認為0。針對單文檔設置是否防復制)。
4、pageStart:Integer格式;pageEnd:Integer格式。試讀功能(轉換頁數的起始頁和轉換頁數的終止頁,擁有對應權限的域名才能調用)。
調用方式:http://api網址/ getPreview?k=(域名對應的用戶Key)&url=(在線文檔地址) &isCopy=(是否防復制1是0否,可選)&watermaerk=(水印文字內容,可選)
不過由於我們這個是免費版,所以不支持高級功能