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

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

  •  
  •   coolair · 155 天前 · 2313 次点击
    这是一个创建于 155 天前的主题,其中的信息可能已经有所发展或是发生改变。
    网上看了一些别人写的项目,很多是转成 swf 然后用 Flash 空间去播。
    第 1 条附言  ·  155 天前
    结合 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   155 天前
    doc、xls、docx、xlsx 可以用微软的库或者别人写好的库,pdf 有商业的库 都是用来转换成网页显示(转成 html,和百度文库不一样)的
        2
    samyucn234   155 天前
    同问有没有开源的项目
        3
    340244120   155 天前 via Android
    花钱的 Aspose 免费的 JODConverter 转成 html,pdf 什么的
        4
    chinajik   155 天前
    永中 DCS.web 商业项目,效果不错
        5
    chinajik   155 天前
    之前有想过自己写, 无非是 统一转换成 pdf 然后走 pdf.js
    实际测试效果还可以的
        6
    Tink   155 天前
    以前写过转成 pdf 的,然后 flash 读
        7
    ixinshang   155 天前 via Android
    用过谷歌文档 百会
        9
    coldmn3   155 天前
    office web apps 缺点是不可定制,页面都是微软生成好的
    pdf 的话在线方案都不是很好,一般都是移动端缓存到本地放
        10
    hpu423   155 天前
    mark
        11
    huangtao728   155 天前 via Android
    PDF 可以用 pdf.js
        12
    holystrike   155 天前
    我们自己用的是 2 种方案,交叉使用

    1. 用微软 Office 来转,效果是最好最有保障的,缺点是要跑在 windows 下,如果服务器是 linux,则需要做好接口处理。
    2. 用 OpenOffice + unoconv,优点是快,但是缺点是保真兼容有时候会出问题
        13
    paradoxs   155 天前
    office online
        14
    chinajik   155 天前
    补充 新版的 libreoffice 支持 headless 的, 实际测试转换速度不稳定,ppt 会很慢
        15
    CC2757   155 天前
    1、Office Online Server 搭建麻烦些,但效果很好,兼容性也可以,这个还可以在线编辑。
    2、Flash 那种方式不推荐
        16
    luozhaofu   155 天前
    实现你的 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   155 天前
    微软有可以调用的方法
        18
    zddhub   155 天前 via iPhone
    Box
        19
    wyfyw   155 天前
    我研究了一下,发现微软的 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   155 天前
    装个 群晖 DSM 6.x 这些功能都有
        21
    20015jjw   155 天前 via Android
    box
        22
    xycool   155 天前
    自己用过以下两种方案,
    1.微软的 Office Web Apps Server
    优:效果最好,还支持多人协作编辑
    缺:部署麻烦,必须要有一台 AD 域服务器,所以至少需要两台服务器才能完成预览功能
    2.转 PDF 之后预览
    优:实现简单,预览速度快
    缺:没办法保证显示效果一样,样式容易丢失

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

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

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

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