JAVA實現office文檔(word、excel、ppt等)、壓縮包在線預覽,支持禁止下載功能、支持PC和手機


 

 

我們使用的是永中的第三方服務、支持直接轉換文檔的線上地址,也可以直接把文檔上傳到官方服務器上

官方文檔地址: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=(水印文字內容,可選)
 
不過由於我們這個是免費版,所以不支持高級功能

 

 具體可以打開https://www.yozodcs.com/page/yun.html 查看詳情

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM