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

有大神吗?拜托了。。用 LibreOffice,转换为 PDF 后,格式混乱

  •  
  •   kieya00 · 38 天前 · 1900 次点击
    这是一个创建于 38 天前的主题,其中的信息可能已经有所发展或是发生改变。

    谁用过了 LibreOffice,转换为 PDF 后,里面的内容排版格式混乱,doc 和 docx 转过去都有问题,Linux 和 win 下也都有问题,很通过,搞了两天两夜了。。。。求大神,v2ex 是我最后的希望

    27 回复  |  直到 2019-10-22 16:15:57 +08:00
        1
    kieya00   38 天前
    真的跪了,大神快来
        2
    tempdban   38 天前 via Android
    为啥不用 word…
        3
    whileFalse   38 天前
    很正常。
        4
    EastLord   38 天前
    格式乱了很正常
        5
    JackieMe   38 天前 via Android
    装个 WPS 试试?反正我是 WPS 和 LibreOffice 都装着备用
        6
    ivlioioilvi   38 天前
    word 文档用什么软件写的,就用那个软件转换。
        7
    wunonglin   38 天前
    word 或者 WPS,干嘛想不开用 LibreOffice ?
        8
    richard1122   38 天前
    应该还可以直接用微软的在线 office 吧
        9
    lisces   38 天前   ♥ 1
    没搞过的根本不懂需求,LibreOffice 有命令行,可以作为任务自动执行。
    LibreOffice 其实非常强大,绝大部分乱的格式都可以调整到位,处理的思路很简单,就是实现比较繁琐。简单直接的自动转换格式肯定会乱,处理方法就是用模板,比如 word 里有正文和脚注,那么预先按照 word 的版式建好对应的 pdf 模板,内容上可以填上变量的方式,比如正文的地方写${content} ,脚注的地方写${footnote},执行的时候用代码去解析 word 中对应的区块内容,然后替换对应的变量,最后再做其它处理。
    word 中的索引、分栏、页码、头注、脚注、测注、角标、竖版等等各种版面格式都可以完美的转换到 pdf,甚至用建几十个模板适配不同图片大小的方式,来接近完美的解决图文环绕。
    我在七八年前就在某产品体系里做过这个工作,效果秒杀百度文档、豆丁之类的在线网站,和市面上所有能找到的自动转换工具。当时这套系统也有一个问题,就是需要用户预先手工选定匹配的模板。当时的产品失败了,十分可惜。其实如果可以继续不断迭代开发的话,我想可以在产品端加入一些生成缩略图然后智能识别匹配的方式,最终把用户需要选择模板的步骤都省略了,实现一套近乎完美的在线转换工具。
        10
    lisces   38 天前
    这事做起来不难,就是贼烦。绣花针上雕佛经,螺蛳壳里做道场,是个很需要耐心的细致活。
        11
    EastLord   38 天前
    我猜他想做在线预览
        12
    whileFalse   38 天前   ♥ 1
    @lisces Office 有 Com 接口,PowerShell 调起来不比命令行费劲,还能用.NET 调用。
        13
    blackwolf   38 天前
    @lisces 这一套感觉跟 latex 差不多了,格式和文本分离
        14
    vipcc   38 天前 via Android
    用 Office,成熟,简单
        15
    zzl22100048   38 天前 via iPhone
    是用 http 接口转的 pdf 吗,用接口转需要用 libreoffice 调格式,wps word openoffice 这几个格式有点区别
        16
    gaolycn   38 天前 via Android
    @lisces 请问你说的这个方案里,把 pdf 模板里的变量替换为真正的内容,这一步用什么工具替换?
        17
    lyog   37 天前 via iPhone
    哈哈,之前开发电子合同的时候用过,想要不乱的话,word 文档在 libreoffive 里预览试试,看到哪处乱掉就把哪处格式处理一下。处理完再转就可以了。
        18
    ipwx   37 天前 via Android
        19
    lycx5360   37 天前
    @gaolycn word 的话只需要 jodconverter+itextpdf,后者可以实现根据关键字定位。如果需要处理一些复杂的 excel 可以结合 jxls 制作 excel 模板
        20
    ungrown   37 天前 via Android
    @lisces 知道你有需求,但是你不知道的是 libreoffice 和微软 office 其实不一样。
    微软 office 本质上还是封闭的,虽然 docx 这个格式开源且标准化了,但那只是文件格式,里面怎么定义文档中的元素、怎么描述排版格式,微软其实是自己用着一套体系,根本不带开源社区一起玩。
    libreoffice 已经尽其所能把常用功能和格式做到兼容了,其他能逆向的也尽力做了,然而还是不行:微软 office 里好好的排版,到了 libreoffice 里面就是会错乱甚至丢元素,你没有办法的。
    想要用 libreoffice 就必须放弃对微软 office 所生成的文档的兼容性,想兼容其他人用微软 office 写的文档就只能老老实实用微软 office,想把微软 office 自动化就只能老老实实在 win 系统里调用 COM 接口写脚本。
    熊与鱼掌不可得兼。
        21
    jiewuza   37 天前 via Android
    @lisces 好奇,你说的 libreoffice 中定义${content} ,这个哪里可以找到相关的使用说明或相关资料啊
        22
    lisces   37 天前
    @whileFalse web server 基本不会用 windows 系统的
    @gaolycn LibreOffice 官方的读写接口
    @ungrown 不是兼容 office 是人肉处理做到像素级的相似
    @jiewuza LibreOffice 官网
        23
    ungrown   37 天前
    @lisces
    > 不是兼容 office 是人肉处理做到像素级的相似
    本末倒置,你就承认你不会 COM 编程不就行了
        24
    kieya00   36 天前
    @EastLord 你猜对了。。就是转换后乱了,展示效果十分恶心啊
        25
    kieya00   36 天前
    @lisces 感谢感谢,可是现在已经没有时间调试了,解决不了啊,很烦,简单格式没问题,一旦加入批注、表格、或者多张图片,就会混乱
        26
    kieya00   36 天前
    @lyog 我们 word 有几十万中格式。。。调不过来。。哭了
        27
    gaolycn   28 天前
    @lisces LibreOffice 中唯一支持 PDF 的好像就 Draw 了,但是格式也会乱啊。没有找到 LibreOffice 读写 PDF 的文档,能具体说一下吗?
    @jiewuza 你找到了吗?
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   963 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 26ms · UTC 22:29 · PVG 06:29 · LAX 14:29 · JFK 17:29
    ♥ Do have faith in what you're doing.