V2EX 首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  问与答

网站在线预览 doc、xls、docx、xlsx、pdf 等文件有什么好的方案么?

  •  
  •   coolair · 8 天前 · 2110 次点击
    网上看了一些别人写的项目,很多是转成 swf 然后用 Flash 空间去播。
    第 1 条附言  ·  7 天前
    结合 V2EXer 推荐和测试,总结以下几个方案:
    1、LibreOffice 转格式
    使用 libreoffice --headless --convert-to 将 doc、docx 转换成 pdf,将 xls、xlsx 转成 html。为什么不统一转成 PDF ?
    xls、xlsx 转成 pdf 的时候,格式容易失真,主要有两个方面:
    ( 1 )列数太多的话,会分页。
    ( 2 )单元格间距不能自适应调整到内容高度。
    不知道以上两个问题有没有办法调整参数解决。
    优点:开源、部署方便。
    缺点:格式容易失真,doc 转成 html 基本没法看,转 pdf 的时候里面的表格内容容易错位。总之就是能看,但不好看。

    2、使用永中 DCS
    商业项目,按服务器个数授权。
    优点:效果好,QQ 邮箱、网易邮箱都有使用这套方案。
    缺点:价格比较高。

    3、使用 Office Online Server
    优点:效果好,可在线编辑。网易邮箱有使用这套方案。
    缺点:部署复杂,我现在还没有部署起来。
    43 回复  |  直到 2017-05-20 15:54:49 +08:00
        1
    lcatt   8 天前
    doc、xls、docx、xlsx 可以用微软的库或者别人写好的库,pdf 有商业的库 都是用来转换成网页显示(转成 html,和百度文库不一样)的
        2
    samyucn234   8 天前
    同问有没有开源的项目
        3
    340244120   8 天前 via Android
    花钱的 Aspose 免费的 JODConverter 转成 html,pdf 什么的
        4
    chinajik   8 天前
    永中 DCS.web 商业项目,效果不错
        5
    chinajik   8 天前
    之前有想过自己写, 无非是 统一转换成 pdf 然后走 pdf.js
    实际测试效果还可以的
        6
    Tink   8 天前
    以前写过转成 pdf 的,然后 flash 读
        7
    ixinshang   8 天前 via Android
    用过谷歌文档 百会
        9
    coldmn3   8 天前
    office web apps 缺点是不可定制,页面都是微软生成好的
    pdf 的话在线方案都不是很好,一般都是移动端缓存到本地放
        10
    hpu423   8 天前
    mark
        11
    huangtao728   8 天前 via Android
    PDF 可以用 pdf.js
        12
    holystrike   8 天前
    我们自己用的是 2 种方案,交叉使用

    1. 用微软 Office 来转,效果是最好最有保障的,缺点是要跑在 windows 下,如果服务器是 linux,则需要做好接口处理。
    2. 用 OpenOffice + unoconv,优点是快,但是缺点是保真兼容有时候会出问题
        13
    paradoxs   8 天前
    office online
        14
    chinajik   8 天前
    补充 新版的 libreoffice 支持 headless 的, 实际测试转换速度不稳定,ppt 会很慢
        15
    CC2757   8 天前
    1、Office Online Server 搭建麻烦些,但效果很好,兼容性也可以,这个还可以在线编辑。
    2、Flash 那种方式不推荐
        16
    luozhaofu   8 天前
    实现你的 pdf 文档在线预览功能

    使用方法:
    将此 js 引入到你的网页中,并将 pdf 修改为你的文档即可
    <script src="http://www.lanrenzhijia.com/ajaxjs/pdfobject.js"></script>
    <script>
    window.onload = function (){
    var myPDF = new PDFObject({ url: "http://demo.lanrenzhijia.com/2014/pdf1023/sample.pdf" }).embed();
    };
    </script>
    说明:js 采用绝对路径,不建议修改,直接调用即可使用
        17
    HerrDu   8 天前
    微软有可以调用的方法
        18
    zddhub   8 天前 via iPhone
    Box
        19
    wyfyw   8 天前
    我研究了一下,发现微软的 web viewer,其实有点像是后端 render 成为图片,比如 png ;前面用 js 来处理你选中文本和其他文档元素的效果。如果说得不对,希望大佬赐教、指正!

    如果你想不那么依赖微软这个 web viewer,可以抓一下它 render 的图片。比如我用 https://products.office.com/zh-CN/office-online/view-office-documents-online
    生成 https://calibre-ebook.com/downloads/demos/demo.docx 的 viewer,你用 F12 看一下 Sources,里面有个 ResReader.ashx ...

    当然如果真要抓它的图片,你要研究一下它的用户许可条文。
        20
    liuweisj   8 天前
    装个 群晖 DSM 6.x 这些功能都有
        21
    20015jjw   7 天前 via Android
    box
        22
    xycool   7 天前
    自己用过以下两种方案,
    1.微软的 Office Web Apps Server
    优:效果最好,还支持多人协作编辑
    缺:部署麻烦,必须要有一台 AD 域服务器,所以至少需要两台服务器才能完成预览功能
    2.转 PDF 之后预览
    优:实现简单,预览速度快
    缺:没办法保证显示效果一样,样式容易丢失

    可以看一下网易邮箱的 office 预览方式,它也是有两种模式,如果微软的那套打开很慢,会提示你用极速模式打开,但是样式可能就没有了。
        23
    xycool   7 天前
    @xycool 补充一下,都是 windows 下,用.net 开发。所以其它环境不清楚。
        24
    laxenade   7 天前
        25
    gotounix   7 天前
    永中 DCS 貌似看着挺好,在线试了一下,不知道怎么部署到服务器,没找到 Demo 下载。
    http://www.yozodcs.com/help.html#link11
        26
    XhstormR   7 天前 via Android
    @gotounix 别人拿来赚钱的,怎么可能轻易就能下载
        27
    coolair   7 天前
    @chinajik
    @holystrike libreoffice+unoconv 转换 xls 怎么保持宽度呢?
        28
    coolair   7 天前
    @xycool 极速模式现在是用的永中的模式,不是转 PDF 了。
        29
    coolair   7 天前
    @CC2757 Office Online Server 这套方案是免费的?
        30
    chinajik   7 天前
    libreoffice 就不用 unoconv 了
    一条命令
    soffice --headless --convert-to pdf *.doc
    具体看
    soffice -h 里面的--convert-to 部分
        31
    chinajik   7 天前
        32
    coolair   7 天前
    @chinajik 谢谢,我用这个命令试了下,命令执行没有输出,没有报错,也没有生成文件,奇怪了。
        33
    Amayadream   7 天前
    1.office -> pdf -> swf, 然后使用 flash 控件展示, 优点是支持 ie 低版本; 缺点是转换真 tm 麻烦, 而且不支持移动端

    2.office -> pdf, 然后使用 pdf.js 预览, 优点是比较美观, 少了一道转换程序, 缺点是不支持 ie9 以下

    3.使用 Office 提供的 Server, 优点是不用复杂的转换, 缺点是需要部署服务, 个人觉得极其麻烦

    4.使用各种商业产品, 优点是不用操心, 简单; 缺点是需要付费(如果这也算的话)以及保密性问题(可能也不算)
        34
    coolair   7 天前
    @chinajik 找到原因了,用了 unoconv 后,服务启动端口和直接用 soffice --headless 不一致。
        35
    ic2y   7 天前
    qq 邮箱 好像用的永中
        36
    gdsagdada   7 天前
    公司还是花点钱买永中顺便看看别家对比试用下,开源的这块做的都不好,复杂的转出来格式都乱了
        37
    xycool   7 天前 via iPhone
    @coolair 如果觉得永中贵的话可以看一下 officeweb365 也是一家提供在线预览服务的,之前找预览方案看到他们的。
        38
    markyangd   7 天前
    Office 文件,如果用.net 的话,可以去看看 DevExpress 的控件,Spreadsheet、Rich Edit ; Pdf 可以考虑用浏览器内置的。
        39
    alocne   7 天前
    mark
        40
    Exin   7 天前
    七牛云有文档预览服务,但速度不是特别快 : (
        41
    mingyun   7 天前
    @luozhaofu nice
        42
    Khlieb   6 天前 via Android
    LibreOffice Online
    PDF.js
        43
    Khlieb   6 天前 via Android
    上面这两个都已经加入 ownCloud 里面了
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1897 人在线   最高记录 2477   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.7.5 · 64ms · UTC 04:15 · PVG 12:15 · LAX 21:15 · JFK 00:15
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1