精华内容
下载资源
问答
  • office文档在线预览插件
    万次阅读 多人点赞
    2021-01-19 14:53:03

    在日常的生活或者工作中,我们都会用到office文档,但是在大多数人们阅读文档的时候,并不想将网站上的office文档下载到本地,这时候就需要文档在线预览的功能。

     

    一些博主知道的实现文档在线预览的方式

    1、转换为PDF

    2、转换为HTML

    3、在服务器上自己部署服务

    4、开源项目提供的功能

    5、使用第三方提供的付费接口


     2021-05-27更新,最近在逛gitee的时候,发现了这个开源的,完全符合我需求的项目,泪目了,家人们

     话不多说,先挂链接  kkFileView 

    该项目是使用spring boot打造文件文档在线预览项目解决方案,支持doc、docx、ppt、pptx、xls、xlsx、zip、rar、mp4、mp3以及众多类文本如txt、html、xml、java、properties、sql、js、md、json、conf、ini、vue、php、py、bat、gitignore等文件在线预览。

    项目特性

    1. 支持 office, pdf, cad 等办公文档
    2. 支持 txt, xml(渲染), md(渲染), java, php, py, js, css 等所有纯文本
    3. 支持 zip, rar, jar, tar, gzip 等压缩包
    4. 支持 jpg, jpeg, png, gif, tif, tiff 等图片预览(翻转,缩放,镜像)
    5. 使用 spring-boot 开发,预览服务搭建部署非常简便
    6. rest 接口提供服务,跨语言、跨平台特性(java,php,python,go,php,....)都支持,应用接入简单方便
    7. 抽象预览服务接口,方便二次开发,非常方便添加其他类型文件预览支持
    8. 最最重要 Apache 协议开源,代码 pull 下来想干嘛就干嘛

    感谢作者及贡献者们的开源

    这个项目搭建及使用都非常简单,将作者发布的最新源码使用maven构建打包,在生成包目录kekingcn-file-online-preview-v3.5.1\file-online-preview\server\target\kkFileView-3.5.1\bin下,双击运行startup.bat即可运行服务(需要Java环境的支持)


    一、在后台将office文档转换为pdf,然后在浏览器中或者插件中查看

      1、使用apache openoffice,下载地址:http://www.openoffice.org/zh-cn/download/

       Java实现参考:https://blog.csdn.net/tan313/article/details/47952055

      2、使用Asponse组件进行转换(优点:无需安装任何软件,直接引用即可使用,缺点:正式版收费,不过有试用版,除此之外,部分文档转换出来后样式错乱)

      下载地址:http://www.componentcn.com/kaifashang/guojikaifashang/2014-06-18/22.html

     

       以转换word文件为PDF文件为例的c#实现代码

    //文件位置
    string FilePath="D://FilePath//test.doc"
    
    //指定转换后的pdf文件存储路径
    string savepath=System.Web.Hosting.HostingEnvironment.MapPath("/myPath/"+DateTime.Now.ToString("yyMMddHHmmssff")+".pdf");
    
    //使用Asponse.word的方法进行转换
    Document doc = new Document(path);
    doc.Save(savepath,Asponse.Words.SaveFormat.Pdf);
    
    

    转换为pdf之后,可以直接使用c#文件读取流将文件以pdf流的形式在浏览器中预览

    //直接读取文件流到浏览器展示
    FileStream fs = new FileStream(path,FileMode.Open);
    byte[] buffer = new byte[fs.Length];
    fs.Seek(0,SeekOrigin.Begin);
    fs.Read(buffer,0,buffer.Length);
    fs.Flush();
    fs.Close();
    
    context.Response.ContenType="application/PDF";
    context.Response.BinaryWrite(buffer);
    context.Response.Flush();
    context.Response.End();
    

       也可使用pdf插件进行预览,例如PDF.js

        pdf.js下载地址:http://mozilla.github.io/pdf.js/

        PDF.js支持

        指定文件地址的预览方式

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>文件预览</title>
            <script src="../javascript/jquery-2.2.4.js"></script>
            <script type="text/javascript">
                $(function () {
                    var url = getPdfPreviewUrl(); //获取pdf预览地址
                    $("#pdfContainer").attr("src", "../static/pdfjs/web/viewer.html?file="+url+"#page=1");
                });
            </script>
        </head>
        <body>
            <div id="showPdf">
                <iframe id="pdfContainer" src="" width="100%" frameborder="0"></iframe>
            </div>
        </body>
    </html>

         以文件流的形式展示

    1、打开viewer.js,搜索defaultUrl,修改为如下形式
     defaultUrl
    {
        value:DEFAULT_URL;
        kind:OptionKind.VIEWER
    }
    
    2、在viewer.html中,新增<Script></Script>,注意要在Viewer.js的引用之前
    <Script>
        var DEFAULT_URL="";
        VAR CMAPS_URL="../../pdfjs_es5/web/cmaps";//这句代码引用的cmaps包是为了解决部分类型的pdf文件显示不全的问题,例如发票的pdf图片
        var PDFData = "";
        $.ajax({
           type:"post",
           async:false,
           mimeType:'text/plain;chartset=x-user-defined',
           url:"自己的后台请求路径",
           success:function(data){
             PDFData = data;
           }
        })
    
        var rawLength = PDFData.length;
        //将数据流转换为pdf.js能解析的unit8Array类型
        var array = new Unit8Array(new ArrayBuffer(rawLength));
        for(let i=0;i<rawLength;i++){
            array[i] = PDFData.charCodeAt(i) & 0xff;
        }
        DEFAULT_URL=array;
    </Script>

     二、将PDF文件转换为html后进行展示,这个方法好像有很多,大家可以自行搜索

          1、博主看过的一篇参考文章:c#实现参考:https://www.cnblogs.com/wangxlei/p/9396196.html

          2、配合上文提到过的openoffice,也可实现这样的效果,在下文中,有一个开源项目就是使用该方式实现。

     

    三、自己部署服务

          1、office online 2016,优点:免费,可在内网部署;缺点:比较复杂与麻烦,不适合个人使用

      由于博主没有自己搭建过,所以也没有相关的经验,给大家分享我看过的几篇文章

             搭建教程:

                1、https://www.cnblogs.com/lhxsoft/p/12071215.html

                2、https://blog.csdn.net/jiaqu2177/article/details/81945692

             文档:

         1、https://www.netnr.com/doc/code/4964095842855914510/4957243103827157707

    2、Collabora online

    参考:https://www.jianshu.com/p/3216cf6196d1

    四、开源项目

           给大家推荐几个博主搭建过或尝试过的优秀开源项目

          1、配合openoffice实现文档的在线预览,实现本地文档添加,文档转换为html,文档HTML方式预览,可以实现预览的文档:doc、docx、ppt、pptx、xls、xlsx、zip、rar

               码云仓库地址:https://gitee.com/macplus/WDA?_from=gitee_search

          2、使用spring boot打造文件文档在线预览项目解决方案,支持doc、docx、ppt、pptx、xls、xlsx、zip、rar、mp4、mp3以及众多类文本如txt、html、xml、java、properties、sql、              js、md、json、conf、ini、vue、php、py、bat、gitignore等文件在线预览

              码云仓库地址:https://gitee.com/kekingcn/file-online-preview?_from=gitee_search

         3、文档在线预览编辑,文档水印 / Office files preview or edit online, doc/docx convert to html, watermark

              GitHub仓库地址:https://github.com/ekoz/kbase-doc

         4、onlyoffice 毕升解决方案。毕升文档在线文件服务部分的Office在线编辑预览使用优秀的开源项目onlyOffice,根据开源协议我们将毕升修改过的sdkjs进行开源。另外毕升文档重新             设计only Office UI交互以及彻底重写服务器。

             GitHub仓库地址:https://github.com/ibisheng/onlyoffice-ibisheng

     

    五、第三方收费服务

       这类服务有很多,大家可以结合自己的实际需求选择,我给大家例举几个常见的

       1、百度智能云文档服务:https://cloud.baidu.com/product/doc.html

       2、腾讯在线文档:https://docs.qq.com/home/open

       3、IDOCV:https://www.idocv.com/ 

       4、XDOC:https://view.xdocin.com/

     

     

     

    更多相关内容
  • 支持word excel ppt,pdf等办公文档 支持txt,java,php,py,md,js,css等所有纯文本 支持zip,rar,jar,tar,gzip等压缩包 支持jpg,jpeg,png,gif等图片预览(翻转,缩放,镜像) 支持mp3,mp4,flv等多媒体文件预览...
  • 支持 office, pdf, cad 等办公文档 支持 txt, xml(渲染), md(渲染), java, php, py, js, css 等所有纯文本 支持 zip, rar, jar, tar, gzip 等压缩包 支持 jpg, jpeg, png, gif, tif, tiff 等图片预览(翻转,缩放,...
  • 直接解压到安装目录下的Viewers目录内,记得先退出Directory Opus,替换完就能正常预览office文档
  • 适合于web开发,通过浏览器浏览office文件场景,支持word,excel ,ppt ,pdf,等
  • office文档在线预览

    2015-10-12 11:13:24
    java与flexpaper结合的office文件的在线预览功能。非常的好用,类似于百度文库之前的版本。最主要的是该插件是免费开源框架,提供大家学习使用。支持window和linux。需要安装2个服务软件openoffice和swttool,这个...
  • 此时可以通过office online插件来实现office文件的预览效果。 下面是效果图:由于我暂时没有找到线上的powerpoint的文档链接,因此效果图依然是展示的word的文档,使用方法都是完全一样的。 直接上代码: <div ...

    在做后台管理系统的时候,经常需要上传文件,常用的文件类别基本上就是office三大件。文件上传成功后,往往需要预览。

    此时可以通过office online插件来实现office文件的预览效果。

    下面是效果图:由于我暂时没有找到线上的powerpoint的文档链接,因此效果图依然是展示的word的文档,使用方法都是完全一样的。
    在这里插入图片描述
    直接上代码:

    <div style="display:flex;">
      <iframe
        src="https://view.officeapps.live.com/op/view.aspx?src=https://physics.nankai.edu.cn/_upload/article/6b/7c/8fe84466415a8e5d48a29c5e08a6/1ea96f13-3367-4ea7-a77f-85b0ec15e121.doc"
        width="100%"
        height="600px"
        frameborder="1"
      ></iframe>
      <iframe
        src="https://view.officeapps.live.com/op/view.aspx?src=https://physics.nankai.edu.cn/_upload/article/files/b2/42/e1f28f964ffd8ec534034429bf79/d7a385f5-65a6-4b98-b98a-cfab9b166549.xls"
        width="100%"
        height="600px"
        frameborder="1"
      ></iframe>
      <iframe
        src="https://view.officeapps.live.com/op/view.aspx?src=https://physics.nankai.edu.cn/_upload/article/6b/7c/8fe84466415a8e5d48a29c5e08a6/1ea96f13-3367-4ea7-a77f-85b0ec15e121.doc"
        width="100%"
        height="600px"
        frameborder="1"
      ></iframe>
    </div>
    

    通过iframne标签可以直接用于文件的预览,其中的src属性,传参内容是src="https://view.officeapps.live.com/op/view.aspx?src=url"

    其中的url是文档的线上地址

    width是宽度,height是高度,framborder是边框宽度

    最终效果如上所示。

    展开全文
  • 在线预览文档flash版(支持word、excel、ppt、pdf)+在线预览文档插件
  • Java版office文档在线预览

    千次阅读 2021-02-28 17:29:42
    java将office文档pdf文档转换成swf文件在线预览第一步,安装openoffice.orgopenoffice.org是一套sun的开源office办公套件,能在widows,linux,solaris等操作系统上执行。主要模块有writer(文本文档),impress(演示...

    java将office文档pdf文档转换成swf文件在线预览

    第一步,安装openoffice.org

    openoffice.org是一套sun的开源office办公套件,能在widows,linux,solaris等操作系统上执行。

    主要模块有writer(文本文档),impress(演示文稿),Calc(电子表格),Draw(绘图),Math(公式),base(数据库)

    笔者下载的是openoffice.org 3.3.0。下载完直接安装即可。

    但是,我们还需要启动openoffice server。有两种做法:

    1.以命令行方式启动openoffice server,缺点是每次系统重启,都需要手动去把openoffice server启动。

    2.将openoffice server作为操作系统的服务启动,既然成为了系统服务,就可以设定开机自动启动了。

    我们先来看第一种方式,

    1.以命令行方式启动openoffice server

    在cmd命令下,cd opeonofiice的安装路径/program 如:cd c:\program files\openoffice.org 3\program\soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard

    2.以系统服务的方式启动

    这里我们还需要Windows Resource Kit tools ,将openoffice server设为系统服务。

    Windows Resource Kit tools 是微软专为管理人员、开发人员和高级用户开发的,包括管理活动目录、组策略、TCP/IP网络、注册表、系统安全、监测等涉及Windows Server 2003 操作系统的其它很多方面的非常规安装的工具组件。Resource Kit Tools for XP的发布使得XP用户也能使用Resource Kit Tools对这些问题进行处理。

    下载windows resource kit tools,我们进行默认安装。

    1.打开Windows Resource Kit Tools

    在Command Shell执行以下命令:

    "C:\Program Files\Windows Resource Kits\Tools\instsrv" OpenOfficeUnoServer "C:\Program Files\Windows Resource Kits\Tools\srvany.exe"

    打开 管理工具->服务 可以找到以 OpenOfficeUnoServer 命名的服务

    2.打开注册表寻找以下路径

    HKEY_LOCAL_MACHINE -> SYSTEM ->ControlSet001 ->Services ->OpenOfficeUnoServer

    新建项 Parameters,在该项下添加两个字符串值:

    key:Application

    value:C:\Program Files\OpenOffice.org 3\program\soffice.exe

    key:AppParameters

    value:-invisible -headless -accept=socket,host=127.0.0.1,port=8100;urp; -nofirststartwizard

    3.在服务控制台,启动 openoffice 服务

    4.在CMD中用以下命令查看8100是否已被监听:netstat -anop tcp

    这样OpenOffice3.0就以服务方式运行在Windows系统上了。(使用cmd命令:netstat -anp tcp查看8100端口是否工作)

    然後可以通过socket方式连接openOffice,以使用openoffice提供的某些服务,如文件转换服务,ms office转pdf等等。

    开源项目 JODConverter 就是结合openoffice来进行文档转换的java组件。

    另外有一个命令行工具swftools,该工具可以将pdf转换为swf格式的文档,提供给ie客戶端流览。

    另外,我们可以将该配置用bat文件来快速实现,运行前请先修改相应目录参数:

    openoffice service.bat文件

    "C:\Program Files\Windows Resource Kits\Tools\instsrv" OpenOfficeUnoServer "C:\Program Files\Windows Resource Kits\Tools\srvany.exe"

    reg add

    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\OpenOfficeUnoServer\Parameters

    /ve /d

    reg add

    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\OpenOfficeUnoServer\Parameters

    /v Application /t REG_SZ /d "C:\Program Files\OpenOffice.org

    3\program\soffice.exe"

    reg add

    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\OpenOfficeUnoServer\Parameters

    /v AppParameters /t REG_SZ /d "-invisible -headless

    -accept=socket,host=127.0.0.1,port=8100;urp; -nofirststartwizard"

    第二步,使用JODConverter将office文档转换为pdf

    JODConverter是一个java的OpenDucument文件转换器,可以进行许多文件格式的转换,它利用

    OpenOffice来进行转换工作,它能进行以下的转换工作:

    1.Microsoft Office格式转换为OpenDucument,以及OpenDucument转换为Microsoft Office

    2.OpenDucument转换为PDF,Word、Excel、PowerPoint转换为PDF,RTF转换为PDF等。

    它是一个开源项目。

    我的项目是在MyEclipse下开发的。

    下载最新版的jodconverter-2.2.2,把lib文件夹的包导入到你的DocConverter项目的lib文件夹内。

    (假设你的项目是DocConverter)

    新建DOC2PDFUtil.java

    package com.iori.webapp.util;

    import java.io.File;

    import java.io.IOException;

    import java.net.ConnectException;

    import java.util.Date;

    import

    com.artofsolving.jodconverter.DocumentConverter;

    import

    com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;

    import

    com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;

    import

    com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;

    public class DOC2PDFUtil extends

    java.lang.Thread  {

    private File inputFile;// 需要转换的文件

    private File outputFile;// 输出的文件

    public DOC2PDFUtil(File inputFile, File outputFile) {

    this.inputFile = inputFile;

    this.outputFile = outputFile;

    }

    public void docToPdf() {

    Date start = new Date();

    OpenOfficeConnection connection = new

    SocketOpenOfficeConnection(8100);

    try {

    connection.connect();

    DocumentConverter converter = new OpenOfficeDocumentConverter(connection);

    converter.convert(inputFile, outputFile);

    } catch (ConnectException cex) {

    cex.printStackTrace();

    } finally {

    // close the connection

    if (connection != null) {

    connection.disconnect();

    connection = null;

    }

    }

    }

    /**

    * 由于服务是线程不安全的,所以……需要启动线程

    */

    public void run() {

    this.docToPdf();

    }

    public File getInputFile() {

    return inputFile;

    }

    public void setInputFile(File inputFile) {

    this.inputFile = inputFile;

    }

    public File getOutputFile() {

    return outputFile;

    }

    public void setOutputFile(File outputFile) {

    this.outputFile = outputFile;

    }

    /**

    * 测试main方法

    * @param args

    */

    public static void main(String[] args) {

    File inputFile = new File("c://temp//333.xls");

    File outputFile = new File("c://temp//333.pdf");

    DOC2PDFUtil dp=new DOC2PDFUtil(inputFile,outputFile);

    dp.start();

    }

    }

    在DOC2PDFUtil.java,右键属性 - >Run as - >Java Application ,输出main的测试结果。

    在jsp中执行

    新建MyDOC2PDFTest.jsp

    import="java.io.*"%>

    import="com.artofsolving.jodconverter.openoffice.connection.*"%>

    import="com.artofsolving.jodconverter.openoffice.connection.*"%>

    import="com.artofsolving.jodconverter.openoffice.converter.*"%>

    import="com.artofsolving.jodconverter.*"%>

    import="java.util.*"%>

    File inputFile = new

    File("c://temp//333.xls");

    File outputFile = new

    File("c://temp//333.pdf");

    DOC2PDFUtil dp=new

    DOC2PDFUtil(inputFile,outputFile);

    dp.start();

    %>

    Simple jsp

    page

    here

    在项目DocConverter根目录,右键属性 - >Run as - >MyEclipse Server Application

    发布到之前安装的Tomcat 6.0的根目录,然后用url路径访问:Http://localhost:8080/DocConverter/MyDOC2PDFTest.jsp 进行测试。

    JODConverter将office文档转换pdf,用到的代码如下:

    File inputFile = new

    File("c://temp//333.xls");

    File outputFile = new

    File("c://temp//333.pdf");

    // 链接 一个运行在8100端口的OpenOffice.org 实例

    OpenOfficeConnection connection = new

    SocketOpenOfficeConnection(8100);

    connection.connect();

    // 创建一个converter对象并转换格式

    DocumentConverter converter = new

    OpenOfficeDocumentConverter(connection);

    converter.convert(inputFile, outputFile);

    // 关闭连接

    connection.disconnect();

    第三步,使用swftools将pdf转换为swf

    建议下载swftools-0.9.1,笔者起先下载的是最新版的swftools-1.0版。貌似转换时出错,缺少什么组件。

    继续笔者的DocConverter项目。笔者使用的开发环境是MyEclipse

    9.0。

    新建PDF2SWFUtil.java

    package com.iori.webapp.util;

    import java.io.BufferedReader;

    import java.io.IOException;

    import java.io.InputStream;

    import java.io.InputStreamReader;

    public class PDF2SWFUtil {

    /**

    * 利用SWFTools工具将pdf转换成swf,转换完后的swf文件与pdf同名

    * @author iori

    * @param fileDir PDF文件存放路径(包括文件名)

    * @param exePath 转换器安装路径

    * @throws IOException

    */

    public static synchronized void pdf2swf(String fileDir, String exePath)

    throws IOException {

    //文件路径

    String filePath = fileDir.substring(0,

    fileDir.lastIndexOf("/"));

    //文件名,不带后缀

    String fileName = fileDir.substring((filePath.length() + 1), fileDir.lastIndexOf("."));

    Process pro = null;

    if (isWindowsSystem()) {

    //如果是windows系统

    //命令行命令

    String cmd = exePath + "

    \"" + fileDir + "\" -o \"" + filePath +

    "/" + fileName + ".swf\"";

    //Runtime执行后返回创建的进程对象

    pro =

    Runtime.getRuntime().exec(cmd);

    } else {

    //如果是linux系统,路径不能有空格,而且一定不能用双引号,否则无法创建进程

    String[] cmd = new String[3];

    cmd[0] = exePath;

    cmd[1] = fileDir;

    cmd[2] = filePath + "/" + fileName + ".swf";

    //Runtime执行后返回创建的进程对象

    pro =

    Runtime.getRuntime().exec(cmd);

    }

    //非要读取一遍cmd的输出,要不不会flush生成文件(多线程)

    new DoOutput(pro.getInputStream()).start();

    new DoOutput(pro.getErrorStream()).start();

    try {

    //调用waitFor方法,是为了阻塞当前进程,直到cmd执行完

    pro.waitFor();

    } catch (InterruptedException e) {

    e.printStackTrace();

    }

    }

    /**

    * 判断是否是windows操作系统

    * @author iori

    * @return

    */

    private static boolean isWindowsSystem() {

    String p = System.getProperty("os.name");

    return p.toLowerCase().indexOf("windows") >= 0 ? true :

    false;

    }

    /**

    * 多线程内部类

    * 读取转换时cmd进程的标准输出流和错误输出流,这样做是因为如果不读取流,进程将死锁

    * @author iori

    */

    private static class DoOutput extends Thread {

    public InputStream is;

    //构造方法

    public DoOutput(InputStream is) {

    this.is = is;

    }

    public void run() {

    BufferedReader br = new BufferedReader(new InputStreamReader(this.is));

    String str = null;

    try {

    //这里并没有对流的内容进行处理,只是读了一遍

    while ((str = br.readLine())

    != null);

    } catch (IOException e) {

    e.printStackTrace();

    } finally {

    if (br != null) {

    try {

    br.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    }

    }

    /**

    * 测试main方法

    * @param args

    */

    public static void main(String[] args) {

    //转换器安装路径

    String exePath = "c:/Program Files/SWFTools/pdf2swf.exe";

    try {

    PDF2SWFUtil.pdf2swf("c:/temp/333.pdf", exePath);

    } catch (IOException e) {

    System.err.println("转换出错!");

    e.printStackTrace();

    }

    }

    }

    在PDF2SWFUtil.java,右键属性 - >Run as - >Java Application ,输出main的测试结果。

    在jsp中执行

    新建MyPDF2SWFTest.jsp

    import="java.io.*"%>

    import="com.artofsolving.jodconverter.openoffice.connection.*"%>

    import="com.artofsolving.jodconverter.openoffice.connection.*"%>

    import="com.artofsolving.jodconverter.openoffice.converter.*"%>

    import="com.artofsolving.jodconverter.*"%>

    import="java.util.*"%>

    import="com.iori.webapp.util.*"%>

    //转换器安装路径

    String exePath = "c:/Program

    Files/SWFTools/pdf2swf.exe";

    try {

    PDF2SWFUtil.pdf2swf("c:/temp/333.pdf", exePath);

    } catch (IOException e) {

    System.err.println("转换出错!");

    e.printStackTrace();

    }

    %>

    Simple jsp page

    here

    在项目DocConverter根目录,右键属性 - >Run as - >MyEclipse Server Application

    第四步,office文档转为pdf,同时进一步转为swf

    网上资料有很多office文档转为pdf,pdf转为swf,但都是单步转换。关于一起转换的资料比较少。

    一起转换有个问题就是转为pdf时,这个转换过程将花费一段时间才能成功,如何控制在pdf转换成功后,才进行swf的转换。

    以及多个文档批量转换又该怎么办。

    有幸笔者还是找到了一篇同时转换的代码:

    新建DocConverter.java

    package com.iori.webapp.util;

    import java.io.BufferedInputStream;

    import java.io.File;

    import java.io.IOException;

    import java.io.InputStream;

    import

    com.artofsolving.jodconverter.DocumentConverter;

    import

    com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;

    import

    com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;

    import

    com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;

    /*

    *

    doc docx格式转换

    *

    @author Administrator

    */

    public class DocConverter {

    private static final int environment=1;//环境1:windows 2:linux(涉及pdf2swf路径问题)

    private String fileString;

    private String outputPath="";//输入路径,如果不设置就输出在默认位置

    private String fileName;

    private File pdfFile;

    private File swfFile;

    private File docFile;

    public DocConverter(String fileString)

    {

    ini(fileString);

    }

    /*

    * 重新设置 file

    * @param fileString

    */

    public void setFile(String fileString)

    {

    ini(fileString);

    }

    /*

    * 初始化

    * @param fileString

    */

    private void ini(String fileString)

    {

    this.fileString=fileString;

    fileName=fileString.substring(0,fileString.lastIndexOf("."));

    docFile=new File(fileString);

    pdfFile=new File(fileName+".pdf");

    swfFile=new File(fileName+".swf");

    }

    /*

    * 转为PDF

    * @param file

    */

    private void doc2pdf() throws Exception

    {

    if(docFile.exists())

    {

    if(!pdfFile.exists())

    {

    OpenOfficeConnection

    connection=new SocketOpenOfficeConnection(8100);

    try

    {

    connection.connect();

    DocumentConverter

    converter=new OpenOfficeDocumentConverter(connection);

    converter.convert(docFile,pdfFile);

    //close the connection

    connection.disconnect();

    System.out.println("****pdf转换成功,PDF输出:"+pdfFile.getPath()+"****");

    }

    catch(java.net.ConnectException

    e)

    {

    //ToDo Auto-generated catch

    block

    e.printStackTrace();

    System.out.println("****swf转换异常,openoffice服务未启动!****");

    throw e;

    }

    catch(com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException

    e)

    {

    e.printStackTrace();

    System.out.println("****swf转换器异常,读取转换文件失败****");

    throw e;

    }

    catch(Exception e)

    {

    e.printStackTrace();

    throw e;

    }

    }

    else

    {

    System.out.println("****已经转换为pdf,不需要再进行转化****");

    }

    }

    else

    {

    System.out.println("****swf转换器异常,需要转换的文档不存在,无法转换****");

    }

    }

    /*

    * 转换成swf

    */

    private void pdf2swf() throws Exception

    {

    Runtime r=Runtime.getRuntime();

    if(!swfFile.exists())

    {

    if(pdfFile.exists())

    {

    if(environment==1)//windows环境处理

    {

    try {

    Process

    p=r.exec("C:/Program Files/SWFTools/pdf2swf.exe

    "+pdfFile.getPath()+" -o "+swfFile.getPath()+" -T 9");

    System.out.print(loadStream(p.getInputStream()));

    System.err.print(loadStream(p.getErrorStream()));

    System.out.print(loadStream(p.getInputStream()));

    System.err.println("****swf转换成功,文件输出:"+swfFile.getPath()+"****");

    if(pdfFile.exists())

    {

    pdfFile.delete();

    }

    } catch (Exception e) {

    e.printStackTrace();

    throw e;

    }

    }

    else if(environment==2)//linux环境处理

    {

    try {

    Process

    p=r.exec("pdf2swf "+pdfFile.getPath()+" -o

    "+swfFile.getPath()+" -T 9");

    System.out.print(loadStream(p.getInputStream()));

    System.err.print(loadStream(p.getErrorStream()));

    System.err.println("****swf转换成功,文件输出:"+swfFile.getPath()+"****");

    if(pdfFile.exists())

    {

    pdfFile.delete();

    }

    } catch (Exception e) {

    e.printStackTrace();

    throw e;

    }

    }

    }

    else {

    System.out.println("****pdf不存在,无法转换****");

    }

    }

    else {

    System.out.println("****swf已存在不需要转换****");

    }

    }

    static String loadStream(InputStream in) throws IOException

    {

    int ptr=0;

    in=new BufferedInputStream(in);

    StringBuffer buffer=new StringBuffer();

    while((ptr=in.read())!=-1)

    {

    buffer.append((char)ptr);

    }

    return buffer.toString();

    }

    /*

    * 转换主方法

    */

    public boolean conver()

    {

    if(swfFile.exists())

    {

    System.out.println("****swf转换器开始工作,该文件已经转换为swf****");

    return true;

    }

    if(environment==1)

    {

    System.out.println("****swf转换器开始工作,当前设置运行环境windows****");

    }

    else {

    System.out.println("****swf转换器开始工作,当前设置运行环境linux****");

    }

    try {

    doc2pdf();

    pdf2swf();

    } catch (Exception e) {

    // TODO: Auto-generated catch block

    e.printStackTrace();

    return false;

    }

    if(swfFile.exists())

    {

    return true;

    }

    else {

    return false;

    }

    }

    /*

    * 返回文件路径

    * @param s

    */

    public String getswfPath()

    {

    if(swfFile.exists())

    {

    String tempString

    =swfFile.getPath();

    tempString=tempString.replaceAll("\\\\", "/");

    return tempString;

    }

    else{

    return "";

    }

    }

    /*

    * 设置输出路径

    */

    public void setOutputPath(String outputPath)

    {

    this.outputPath=outputPath;

    if(!outputPath.equals(""))

    {

    String

    realName=fileName.substring(fileName.lastIndexOf("/"),fileName.lastIndexOf("."));

    if(outputPath.charAt(outputPath.length())=='/')

    {

    swfFile=new

    File(outputPath+realName+".swf");

    }

    else

    {

    swfFile=new

    File(outputPath+realName+".swf");

    }

    }

    }

    public static void main(String s[])

    {

    DocConverter d=new DocConverter("c:/temp/111.ppt");

    d.conver();

    }

    }

    在DocConverter.java,右键属性 - >Run as - >Java Application ,输出main的测试结果。笔者分别进行单个转换,及批量转换,都测试可行。

    至于为什么能成功进行pdf及swf的完整转换,在代码中没有看到和上述问题相关的控制。笔者在得到预期的结果,偶尔也会装糊涂,不去继续深究。

    第五步,flexpaper在线浏览swf文档

    FlexPaper是一个开源轻量级的在浏览器上显示各种文档的组件,被设计用来与PDF2SWF一起使用,

    使在Flex中显示PDF成为可能,而这个过程并无需PDF软件环境的支持。它可以被当做Flex的库来使用。

    另外你也可以通过将一些例如Word、PPT等文档转成PDF,然后实现在线浏览。

    FlexPaper_1.2.4_flash:无打印功能

    FlexPaper_1.4.7_flash:打印功能,右键打印

    这里我们不需要让用户打印,所以笔者选择FlexPaper_1.2.4_flash。

    FlexPaper项目中有演示demo,这里笔者不多述。

    综上,一个完整的在线文档浏览方案。

    其他,使用iText将jpg/jpeg/png转换为pdf

    iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成

    PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。1.在企业的信息系统中,报表处理一直占比较重要的作用,iText--一种生

    成PDF报表的Java组件,通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超级连接显示或下载得到生成的报表,这样就很好的解

    决了B/S系统的报表处理问题。2.支持文本,表格,图形的操作,可以方便的跟 Servlet 进行结合。

    继续笔者的DocConverter项目。开发环境是MyEclipse

    9.0。笔者下载的是iText5.0.4。

    新建JPG2PDFUtil.java

    package com.iori.webapp.util;

    import java.io.File;

    import java.io.FileNotFoundException;

    import java.io.FileOutputStream;

    import java.io.IOException;

    import com.lowagie.text.Document;

    import com.lowagie.text.DocumentException;

    import com.lowagie.text.Image;

    import com.lowagie.text.pdf.PdfWriter;

    public class JPG2PDFUtil {

    private String inputFileString;

    private String outputFileString;

    public JPG2PDFUtil(String inputFile, String outputFile) {

    this.inputFileString = inputFile;

    this.outputFileString = outputFile;

    }

    public void imgtopdf()

    {

    //创建一个文档对象

    Document doc = new Document();

    try {

    //定义输出文件的位置

    PdfWriter.getInstance(doc,

    new FileOutputStream(outputFileString));

    //开启文档

    doc.open();

    //设定字体 为的是支持中文

    //BaseFont bfChinese = BaseFont.createFont("STSong-Light",

    "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);

    // Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);

    //向文档中加入图片

    /*//以下是多图合成一个pdf,暂时用不到

    for(int i=1;i<32;i++)

    {

    //取得图片~~~图片格式:

    Image jpg1 = Image.getInstance("c:/"+i+".jpg");

    //原来的图片的路径

    //获得图片的高度

    float heigth=jpg1.height();

    float width=jpg1.width();

    System.out.println("heigth"+i+"----"+heigth);

    System.out.println("width"+i+"-----"+width);

    //合理压缩,h>w,按w压缩,否则按w压缩

    //int

    percent=getPercent(heigth, width);

    //统一按照宽度压缩

    int percent=getPercent2(heigth,

    width);

    //设置图片居中显示

    jpg1.setAlignment(Image.MIDDLE);

    //直接设置图片的大小~~~~~~~第三种解决方案,按固定比例压缩

    //jpg1.scaleAbsolute(210.0f,

    297.0f);

    //按百分比显示图片的比例

    jpg1.scalePercent(percent);//表示是原来图像的比例;

    //可设置图像高和宽的比例

    //jpg1.scalePercent(50, 100);

    doc.add(jpg1);

    }

    */

    //向文档中加入图片

    //取得图片~~~图片格式:

    Image jpg1 = Image.getInstance(inputFileString); //原来的图片的路径

    //获得图片的高度

    float heigth=jpg1.height();

    float width=jpg1.width();

    System.out.println("heigth----"+heigth);

    System.out.println("width-----"+width);

    //合理压缩,h>w,按w压缩,否则按w压缩

    //int percent=getPercent(heigth, width);

    //统一按照宽度压缩

    int percent=getPercent2(heigth, width);

    //设置图片居中显示

    jpg1.setAlignment(Image.MIDDLE);

    //直接设置图片的大小~~~~~~~第三种解决方案,按固定比例压缩

    //jpg1.scaleAbsolute(210.0f, 297.0f);

    //按百分比显示图片的比例

    jpg1.scalePercent(percent);//表示是原来图像的比例;

    //可设置图像高和宽的比例

    //jpg1.scalePercent(50, 100);

    doc.add(jpg1);

    //关闭文档并释放资源

    doc.close();

    } catch (FileNotFoundException e) {

    e.printStackTrace();

    } catch (DocumentException e) {

    e.printStackTrace();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    /**

    * 第一种解决方案

    * 在不改变图片形状的同时,判断,如果h>w,则按h压缩,否则在w>h或w=h的情况下,按宽度压缩

    * @param h

    * @param w

    * @return

    */

    public int getPercent(float h,float w)

    {

    int p=0;

    float p2=0.0f;

    if(h>w)

    {

    p2=297/h*100;

    }

    else

    {

    p2=210/w*100;

    }

    p=Math.round(p2);

    return p;

    }

    /**

    * 第二种解决方案,统一按照宽度压缩

    * 这样来的效果是,所有图片的宽度是相等的,自我认为给客户的效果是最好的

    * @param args

    */

    public int getPercent2(float h,float w)

    {

    int p=0;

    float p2=0.0f;

    p2=530/w*100;

    p=Math.round(p2);

    return p;

    }

    /**

    * 第三种解决方案,就是直接压缩,不安像素比例,全部压缩到固定值,如210*297

    *

    * @param args

    */

    public static void main(String[] args) {

    JPG2PDFUtil pt=new

    JPG2PDFUtil("c:/temp/ddd.jpg","c:/temp/ddd.pdf");

    pt.imgtopdf();

    }

    }

    在JPG2PDFUtil.java,右键属性 - >Run as - >Java Application ,输出main的测试结果。

    在jsp中执行

    新建MyJPG2PDFTest.jsp

    import="java.io.*"%>

    import="java.util.*"%>

    import="com.iori.webapp.util.*"%>

    JPG2PDFUtil pt=new

    JPG2PDFUtil("c:/temp/333.jpg", "c:/temp/333.pdf");

    pt.imgtopdf();

    %>

    Simple jsp page

    here

    在项目DocConverter根目录,右键属性 - >Run as - >MyEclipse Server Application

    1.txt转换swf,发生中文乱码。

    txt转换为utf-8编码,或txt格式手动改为odt,上传就不会发生乱码。从根源上解决,暂时就算了...暂时不想去纠结这些鸡毛。

    2.加密的pdf可能导致转换为swf失败。

    3.Microsoft Excel在公式运算中支持文本型的数值,而OpenOffice.org Calc不支持

    此问题暂无解,请手动将Excel中文本型的数值修改为数值型的数值。

    4.部分Excel存在过于丰富的样式(大部分指没有数据的单元格也填充了各种样式),即使用专业Adobe

    Acrobat 7(或9) Pro来进行转换,

    本来可能预计将产生20-30分页的pdf,结果却产生800-900分页的pdf。此类文档在线转换,难以避免的将导致转换死锁。

    请在你的Excel文档中删除多余的,毫无必要的样式,或者你有更灵活的做法。

    5.有些中文PDF文件转换为SWF后,出现乱码(特别一些专业期刊)

    1.下载XPDF:xpdf-chinese-simplified.tar.gz

    2.下载字体:gkai00mp.rar

    3.修改xpdf-chinese-simplified目录下的add-to-xpdfrc文件。将里面的路径设为自己的路径:

    #----- begin Chinese Simplified support package

    (2011-sep-02)

    cidToUnicode Adobe-GB1

    C:\xpdf-chinese-simplified\Adobe-GB1.cidToUnicode

    unicodeMap

    ISO-2022-CN C:\xpdf-chinese-simplified\ISO-2022-CN.unicodeMap

    unicodeMap   EUC-CN

    C:\xpdf-chinese-simplified\EUC-CN.unicodeMap

    unicodeMap

    GBK

    C:\xpdf-chinese-simplified\GBK.unicodeMap

    cMapDir        Adobe-GB1

    C:\xpdf-chinese-simplified\CMap

    toUnicodeDir

    C:\xpdf-chinese-simplified\CMap

    fontDir

    C:\WINDOWS\Fonts

    displayCIDFontTT Adobe-GB1

    C:\xpdf-chinese-simplified\CMap\gkai00mp.ttf

    #fontFileCC Adobe-GB1 /usr/..../gkai00mp.ttf

    #----- end Chinese Simplified support package

    4.参照上面的代码,在调用pdf2swf命令中加入“ -s languagedir=D:\\xpdf\\xpdf-chinese-simplified ”参数。

    PDF2SWFUtil.java

    String cmd = exePath + " \"" + fileDir +

    "\" -o \"" + filePath + "/" + fileName +

    ".swf\" -T 9 -s languagedir=c:\\xpdf-chinese-simplified";

    这样乱码的问题就解决了。

    Java实现word文档在线预览,读取office文件

    想要实现word或者其他office文件的在线预览,大部分都是用的两种方式,一种是使用openoffice转换之后再通过其他插件预览,还有一种方式就是通过POI读取内容然后预览. 一.使用openof ...

    Java&plus;FlexPaper&plus;swfTools 文档在线预览demo

    1.概述 主要原理 1.通过第三方工具openoffice,将word.excel.ppt.txt等文件转换为pdf文件 2.通过swfTools将pdf文件转换成swf格式的文件 3.通过FlexP ...

    java 实现word文档在线预览

    一.准备工具 1.通过第三方工具openoffice,将word.excel.ppt.txt等文件转换为pdf文件 下载地址:http://www.openoffice.org/download/in ...

    Office文档在线预览

    工具说明:通过传入文档的Web地址,即可进行Office文档的在线预览. 使用方式: 在http://office.qingshanboke.com地址后,通过url参数传入您想预览的文件路径. 如: ...

    Java&plus;FlexPaper&plus;swfTools仿百度文库文档在线预览系统设计与实现

    笔者最近在给客户开发文档管理系统时,客户要求上传到管理系统的文档(包括ppt,word,excel,txt)只能预览不允许下载.笔者想到了百度文库和豆丁网,百度文库和豆丁网的在线预览都是利用flash ...

    Print2flash在&period;NET(C&num;)64位中的使用,即文档在线预览

    转:http://www.cnblogs.com/flowwind/p/3411106.html Print2flash在.NET(C#)中的使用,即文档在线预览   office文档(word,ex ...

    基于MVC4&plus;EasyUI的Web开发框架经验总结(8)--实现Office文档的预览

    在博客园很多文章里面,曾经有一些介绍Office文档预览查看操作的,有些通过转为PDF进行查看,有些通过把它转换为Flash进行查看,但是过程都是曲线救国,真正能够简洁方便的实现Office文档的预览 ...

    &lbrack;转载&rsqb;基于MVC4&plus;EasyUI的Web开发框架经验总结&lpar;8&rpar;--实现Office文档的预览

    在博客园很多文章里面,曾经有一些介绍Office文档预览查看操作的,有些通过转为PDF进行查看,有些通过把它转换为Flash进行查看,但是过程都是曲线救国,真正能够简洁方便的实现Office文档的预览 ...

    随机推荐

    Kafka集群模式部署

    环境:kafka 0.8.1.1 基本概念 Kafka维护按类区分的消息,称为主题(topic) 生产者(producer)向kafka的主题发布消息 消费者(consumer)向主题注册,并且接收发 ...

    Qt全屏显示窗口、子窗口的相关函数

    Qt全屏显示函数         window.showFullScreen() Qt最大化显示函数         window.showMaximized() Qt最小化显示函数         ...

    Qt 如何处理密集型耗时的事情(频繁调用QApplication&colon;&colon;processEvents)

    有时候需要处理一些跟界面无关的但非常耗时的事情,这些事情跟界面在同一个线程中,由于时间太长,导致界面无法响应,处于“假死”状态.例如:在应用程序中保存文件到硬盘上,从开始保存直到文件保存完毕,程序不响 ...

    windows下创建启动脚本bat

    最主要是运用bat命令. call执行命令 比如 启动solr的服务,以前要进去solr的目录,然后bin/solr start    这样很麻烦.可以写个脚本放到桌面. call %CATALINA ...

    django框架基础

    所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 最简单的web框架 import socket sk = socke ...

    绑定域名到JavaWeb项目,由域名直接访问到网站首页

    展开全文
  • office文档在线预览工具平台选型

    千次阅读 2022-01-20 09:49:22
    2、用户终端访问文档预览资源地址,请求文档解析器,解析器分为私有云和公有云部署,作用是将文档进行解析成xml数据或者是HTML数据 3、文档解析器拿到URL地址之后获取文件地址,通过文件URL地址获取文件流程到...

    ​​​​​​ 在线预览原理

    文档在线预览说明:

    1、业务系统生成文档浏览地址,用户通过终端进行访

    2、用户终端访问文档预览资源地址,请求文档解析器,解析器分为私有云和公有云部署,作用是将文档进行解析成xml数据或者是HTML数据

    3、文档解析器拿到URL地址之后获取文件地址,通过文件URL地址获取文件流程到服务器

    4、最后文件解析器将文件流进行转化返回到终端进行渲染展

    重点关注需求

    1. 安全性,主要体现的两方面(数据存储、数据访问),保证知识文档的知识版权
    2. 兼容性,支持文档在PC端和移动端访问,提供更好的体验
    3. 访问性能

    方案介绍与对比

    1、开源OnlyOffice

    onlyoffice是一款开源强大的文档在线协同的系统,提供文档在线预览、协同编辑、批注、历史版本、pdf转换、即时聊天等功能,系统也比较的成熟。onlyoffice则在字体还原度上不是那么的友好,但是从开源角度来看onlyoffice遵循apache开源协议、够用、基本能满足使用场景。

    onlyoffice最核心的在与document server

    Onlyoffice主要的特点有:

    1. 采用html5+canvas实现,抛弃activex浏览器插件等过时的方案;
    2. 完全支持本地化、私有化部署,内网环境下也可以实现文档的在线预览编辑。无需额外配置,省时省力
    3. 同时融合了在线预览、编辑、多人协作等功能特性,支持历史版本记录和回溯,可完美解决用户的在线办公问题
    4. 适合对Office功能需求较强、安全性需求较高、不喜欢折腾的用户
    5. 可以支持PC端和移动端适应展示

    Onlyoffice主要的优点有:

    1. 在部署上私有化部署,将其部署在内网,保证数据安全
    2. 支持主流的office文件如doc、docx、xls、xlsx、ppt、pptx、PDF等,可在PC/移动端展示
    3. 在配置方面可以设置禁止复制、打印、全屏展示、自适应界面、自动放大

    存在的问题

    知识平台V1.0引入了onlyoffice支持在线预览,在使用过程中发现一些问题,主要有文档内容渲染兼容性问题、移动端自适应体验问题、文档内容获取分页问题、自定义设置局限性问题

    1、内容渲染兼容性问题

    2、移动端自适应体验问题

    3、内容获取不能分页加载,一次性加载,导致获取大文件数据时慢

    2、OfficeWeb365

    专注于Office文档在线预览云服务,包括Microsoft Word文档在线预览、Excel表格在线预览、Powerpoint演示文档在线预览,WPS文字处理、WPS表格、WPS演示及Adobe PDF文档在线预览。广泛应用于OA办公系统、招聘网站、在线教育类网站,提高客户体验、增加产品竞争力。

    officeWeb365主要的特点有:

    1、原样呈现

    Microsoft OfficeWPSAdobe PDF文档原始完美呈现,不再变样。Word 文档中的格式和布局会保留下来,可以对 Excel 工作簿中的数据进行筛选和排序,并且 PowerPoint 演示文稿中的动画会正常点击播放。客户端软件中什么样,浏览器中就是什么样。

    2、部署方便

    服务器端及客户端均不需要任何部署。支持任何操作系统(WindowsMacLinux)及浏览器,所有浏览器全部支持,包括ChromeIEFirefoxSafariOpera等,且不需要安装任何ActiveX控件。

    3、支持移动设备

    针对移动设备专门做了优化,更小的流量更快的速度,Word文档在线预览2页、Excel在线预览1个工作表保留格式的情况下仅仅只有3KB,全球中文支持最好的手机端在线预览技术。可以在手机及平板电脑上浏览所有支持的文档,与PC上的样式一致。

    officeWeb365技术对接使用API

    officeWeb365费用与支持服务:

    3、永中DCS

    永中DCS文档在线预览软件是永中软件股份有限公司基于十多年核心技术积累、面向移动互联领域推出的 一款文档处理软件。永中DCS采用自主可控核心技术,具备快速技术和服务响应能力,把文档原样输出为 HTML,图片等,即点即得、无需下载、保护文档隐私,快速高效,轻松实现文档在线安全阅读。

    永中DCS特点:

    1、无需下载,原样展现

    可快速查看文档内容,无需下载,无需任何Office软件即可查看,和Office打开效果基本一致

    部署简便,集成简单

    支持WindowsLinux服务器部署,采用多线程技术、集群部署方式,支持高并发和负载均衡。

    2、支持文档格式丰富

    DCS支持预览和转换, 文档支持格式丰富,支持WordExcelPPTPDF等多种格式文件输出目标文件HTML或是图片,同时可根据特殊需求进行定制开发

    3、支持手机平板PC

    将目标文件转换为html页面,支持分页预览,屏幕大小自适应,适配PC端和APP端,预览时最

    4、文档安全,防止泄露

    无需外部调用,部署企业内部,确保文档安全不泄露,有效规避外来病毒文档的侵害,进一步保障文档和系统安全

    永中DCS技术对接使用API

    永中DCS费用与支持服务:

    效果展示: https://open.yozocloud.cn/product/preview

    4、金山WPS

    金山WPS在线预览是金山WPS针对政企单位提供的软件服务组件,可同时供多个业务系统进行对接和集成,协助业务系统实现对office、pdf和图片等格式文档的在线预览。

    金山WPS特点:

    1、文件格式转换

    金山WPS在线预览可同时供多个业务系统进行对接和集成,协助业务系统实现对office、pdf和图片等30多种格式文档的在线预览。

    2、文件无损预览

    WPS PC客户端打开这个文档什么样,用浏览器做在线预览的时候就是什么样子。支持版式文档:PDF、OFD、图片、Visio

    3、文档智能处理

    具备丰富的后台对接接口,能转成PDF、书签接口、水印接口、安全能力。

    金山WPS技术对接使用API

    效果访问:https://open.wps.cn/

    5、 技术对比

    产品

    Onlyoffice

    OfficeWeb365

    永中DCS

    金山WPS

    是否开源

    开源

    第三方平台

    第三方平台

    第三方平台

    部署方式

    私有化内网部署

    SaaS云服务

    云服务

    云服务

    对接方式

    iframe+url

    iframe+url

    前端+后端API

    前端+后端API

    参数配置

    Js参数设置

    URL参数

    URL参数+鉴权

    URL参数+鉴权

    适配

    PC+APP

    PC+APP

    PC+APP

    PC+APP

    文档渲染

    80%

    95%

    100%

    100%

    加载方式

    一次性

    一次性

    异步分页

    异步分页

    对接难度

    简单

    简单

    较难

    较难

    ​​​​​​​6、 成本对比

    产品

    Onlyoffice

    OfficeWeb365

    永中DCS

    金山WPS

    价格费用

    免费

    标准版1800/年
    高级版2800/年或300/月
    企业版5800/年或600/月

    私有云9万8
    公有云版

    专业3000/年

    高级版本9600/年

    并发文档30,30M最大单文档上限 价格:2800元/年

    并发文档50,50M最大单文档上限 价格:9000元/年

    对接工时

    4day/1人

    2day/1人

    5day/1人

    5day/1人

    7、总结

    如果重点考虑数据安全、成本、私有化问题,则采用onlyoffice,基本能够满足90%的需求

    如果重点考虑用户体验、加载性能、文档服务扩展,则可以使用第三方收费平台,如永中DCS或者officeWeb365

    展开全文
  • 系统在线预览文档只能预览pdf文件,需要安装插件。一、pdf文件预览1、到【系统-系统工具-系统升级】那安装“在线预览pdf文档”这个记录。2、这插件只能预览pdf文件噢,如是文档类型请自己转为pdf格式在上传方可预览...
  • word、excel、txt文件,浏览器预览功能实现工具类,OpenOfficeUtil,openoffice插件
  • java 实现 word 文档在线预览,资源包含代码和jar包,下载放入项目既可以使用
  • 前端江太公 前端实现文档在线预览功能 最直接的就是使用XDOC 文档...XDOC文档预览服务接口简单,只需要传入文档地址 XDOC文档预览云服务:https://view.xdocin.com/. 看看XDOC如何做Word文档预览: https://view..
  • 微软方:利用Office2007以上版本的一个PDF插件SaveAsPDFandXPS.exe可以导出PDF文件,然后再利用免费的swftools.exe工具生成swf格式的Flash文件,网页中加载flexpaper免费开源工具(有广告)实现Flash文件的预览。...
  • 采用开源插件实现Office在线预览功能,内含操作文档和MyEclipse项目代码,已测试
  • 在PC端或手机端Web开发的过程中,您是否遇到需要在网页上放置有 Office 文档,并且希望确保所有人即使没有 Office 也能阅读? 按照下列步骤,使 Word、Excel 和 PowerPoint 文档能够在 Web 浏览器* 中通过 Office On...
  • 使用OpenOffice + jodconverter 将文档转成pdf,通过pdf.js在页面展示 写的是Stringboot 版的demo,核心代码很少,很容易懂
  • office文件在线预览

    2022-07-12 14:15:25
    world、excel、ppt、pdf文件预览
  • WEB中使用viewer.js实现在线浏览Office文档 - 焘子的博客 - CSDN博客 http://blog.csdn.net/weixin_35852328/article/details/77848318
  • Vue实现文档在线预览文档在线预览PDF、Word、Excel和ppt等office文件
  • Android 基于x5Webview 浏览文件 office文档 已测试Android11 功能实现
  • web页面无法支持预览office文档,但是却可以预览PDF、flash文档,所以大多数解决方案都是在服务端将office文档转换为pdf,然后再通过js的pdf预览插件(谷歌浏览器等已经原生支持嵌入PDF文档)进行查看。 Aspose ...
  • 使用maven构建工具。前端使用pdf插件。后台搭建的springmvc框架,主要用于web在线预览pdf、word、excel文件。不需要安装office等其他插件
  • ONLYOFFICE,是一个包含常用办公套件,Word、Excel、PPT大办公套件搬到了云端,只需要一个浏览器即可以在线使用Office的各种功能。
  • WEB前端实现在线预览、编辑Office文档

    千次阅读 热门讨论 2021-05-28 17:26:09
    这篇文章介绍如何在web前端引入JS插件实现在线预览、编辑Office文档。 使用插件:Spire.Cloud在线Office文档编辑器(官网:https://cloud.e-iceblue.cn/) 重点:该方案仅需浏览器支持HTML5,不需要安装Office或...
  • 安装后可以在文档大师(pinpkm)软件内直接预览office文档
  • 一、服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览微软方:利用Office2007以上版本的一个PDF插件SaveAsPDFandXPS.exe可以导出PDF文件,然后再利用免费的swftools.exe工具生成swf格式的Flash文件,网页...
  • linux下转换office文档成为pdf,,实现在线预览。文档有详细说明,openoffice太大无法上传。这里有文档说明和需要的jar包,,还有字体。文档有路径进行直接下载。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,179
精华内容 1,271
热门标签
关键字:

office文档在线预览插件