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

office 转 pdf 有什么高效的方案吗

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

    原始文件格式有:doc、docx、xls、xlsx、ppt、pptx
    想要转换成:pdf 格式

    目前网上有一些付费的服务,但是没办法满足我们的需求:

    1. 对文件大小有限制。
    2. 批量转换支持比较弱。
    3. 有一些价格比较高。

    于是我们想自己搭建一个来实现,不知道有木有可用的方案,要求如下:

    1. 服务器是 linux 的,不打算使用 ms 的 api。
    2. 语言方面的要求是 golang、php
    39 回复  |  直到 2019-09-11 19:11:39 +08:00
        1
    Sainnhepark   117 天前 via Android   ♥ 1
    MS office 难道不可以直接转吗
        2
    AzureTT   117 天前   ♥ 1
        3
    v2hub   117 天前
    @Sainnhepark
    可以,但是我们要批量的,各个门店上传上来的文档太多了。必须批量处理。

    @AzureTT
    这个看过,没有提供接口,而且也不支持 ppt 转 pdf
        4
    itning   117 天前 via Android   ♥ 1
    aspose 上网找 破解版的 或者付费
        5
    snw   117 天前 via Android   ♥ 2
    如果是 Windows,直接用 VBA 控制打开文件、打印成 PDF、关闭文件就行了。
    限定 Linux 就困难得多。
        6
    Chowe   117 天前 via iPhone   ♥ 1
    Pandoc+Latex
        7
    nihiue   117 天前 via Android   ♥ 1
    前两天刚写了个各类 pdf 处理 API 的 sdk,https://github.com/Nihiue/ilovepdf-node
        8
    gamecmt   117 天前 via Android   ♥ 1
    windows 下调用 api 转换成 pdf,用文件夹同步到 linux 下面,这种应该更可行吧。
        9
    soros1990   117 天前   ♥ 1
    另存为 pdf,soeasy
        10
    nihiue   117 天前 via Android   ♥ 1
    自己实现的方案我也调研过,在 Linux 下容易运维+效果靠谱的基本没有,所以最终还是用了三方 API
        11
    katos   117 天前   ♥ 1
    pdf 虚拟打印机?
        12
    mogutouer   117 天前   ♥ 1
    word 好像可以写宏?
        13
    inframe   117 天前 via Android   ♥ 1
    用个 Windows 系统 这个问题就解决了,GitHub 上一堆 VBS 脚本可以批量转换,
    处理文档上,似乎没有什么软件可以超越 office 全家桶
        14
    sephinh   117 天前 via iPhone   ♥ 1
    pdf 虚拟打印机是最方便的
        15
    burning   117 天前   ♥ 1
    Mac 上有个 pdftor
        16
    ylrshui   117 天前 via iPhone   ♥ 1
    根据 office 帮助文档,整个 vba 程序就行,调用 office 自带的另存为功能,自动批量另存为 pdf
        17
    ylrshui   117 天前 via iPhone   ♥ 1
    excel word ppt 都能另存为 pdf
        19
    chinvo   117 天前 via iPhone   ♥ 1
    要求门店上传 pdf,又不是不能导出
        20
    chinvo   117 天前 via iPhone   ♥ 1
    PHP 有个 phpoffice,但是格式不保证正确
        21
    elfive   117 天前 via iPhone   ♥ 1
    装个 Adobe pdf,然后会帮你装个虚拟打印机,然后就是全选,打印
        22
    dazkarieh   117 天前
    LibreOffice 或者 pandoc
        23
    ethanlu   117 天前
    VBA 就可以了,for 循环一下目录里面的所有文件,Select Case 判断一下后缀,不同后缀分别用 word,excel,ppt 打开,再 saveas pdf 就行了
        24
    TIGERII   117 天前
    openoffice 或者 libreoffice
        25
    robin1985   117 天前
    wps
        26
    Nasei   117 天前 via Android
    要我说,服务器该用 win 的时候就用 win 啊,系统选择又不靠信仰,哪个方便用哪个
        27
    mdluo   117 天前
    LibreOffice 对 M$ Office 的兼容不错,比 OpenOffice 要好,Linux 里装好 LibreOffice 然后一行命令就可以搞定:

    libreoffice --headless --convert-to pdf --outdir <output/dir> /path/to/input.docx
        28
    mdluo   117 天前
    M$ 官方建议不要在服务器上做 Microsoft Office 自动化: https://support.microsoft.com/en-us/help/257757
        29
    zw1one   117 天前 via Android
    建议弄一个 windows server 调 ms office 接口实现。在 linux 上的 office 或多或少会有问题。
        30
    yytsjq   116 天前
    用于将 Word 文档转换为 PDF 文件的脚本 (PowerShell)
    https://gallery.technet.microsoft.com/office/Script-to-convert-Word-f702844d
        31
    xuc   116 天前 via Android
    https://www.tracker-software.com/products
    批量转可以用上面的 PDF-TOOLS
        32
    iwtbauh   116 天前 via Android
    服务器可以 wine 运行 ms-office

    其实这也是 winehq 的说的 wine 的好处之一的变种,“ Wine makes it economical to use thin clients: simply install Wine on a Linux server, and voila, you can access these Windows applications from any X terminal.”

    在服务器上运行 X,然后执行 ms-office 和 office 自动化即可。

    当然,请务必使用正版 ms-office 软件。但可以节省一大笔 windows server 授权费用。

    此外还可以使用 libreoffice 进行自动化,速度会更快,更干净,但可能出现格式上的错乱。
        33
    VDarker   116 天前
    acrobat 这个软件有提供程序调用的接口
        34
    zhihaofans   116 天前 via Android
    win10+自带 pdf 打印机?
        35
    RockShake   116 天前
    Small PDF 可以 PPT 转 PDF 啊
        36
    IfEles   116 天前
    aspose 效果不错,比较依赖字库,对格式(字间距)要求高的情况下,稍显不理想,如果需要 pdf 和 office 一模一样的效果,只能走 office 另存为的那套逻辑,其他效果稍微差强人意
        37
    nnnToTnnn   115 天前
    环境:
    manjaro + kde + libreoffice,

    操作方式:

    打开你的 word 右键 File -> Print ... -> Print to File ...
        38
    nnnToTnnn   115 天前
    批量的话,就采用 LibreOffice Basic,调用理论上是可行的
        39
    duxiansen   71 天前
    @nihiue 你好,请问下有哪些好用的 api 吗?直接找了一通没找到
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2531 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 29ms · UTC 13:36 · PVG 21:36 · LAX 05:36 · JFK 08:36
    ♥ Do have faith in what you're doing.