轶哥

妄图改变世界的全栈程序员。

Office(Word Excel PPT)转PDF-开放API

大约5年前,我在做一个云打印的软硬件一体化项目,其中很关键的一步是通过API将客户发来的Office文档转换为PDF文档进行预览,然后再发送到对应的打印机进行打印,以PDF预览的方式来确保所见即所得。因此当时开发了此API,一直使用至今,历经数次迭代,如今已经很稳定。

现今免费将此API开放给大家进行使用(因服务器成本较高,不排除将来进行收费的可能。如若将进行收费,我会提前至少两个月联系您。即使收费,我承诺此API仅收取成本费用)。API部署在多地服务器,使用阿里云API网关进行中转。

支持的文件格式

  • Word (.doc, .dot,  .docx, .dotx, .docm, .dotm, .rtf, .wpd)
  • Excel (.xls, .xlsx, .xlsm, .xlsb, .xlt, .xltx, .xltm, .csv)
  • Powerpoint (.ppt, .pptx, .pptm, .pps, .ppsx, .ppsm, .pot, .potx, .potm)
  • OpenOffice (.odt, .odp, .ods)
  • Visio (.vsd, .vsdx, .vsdm, .svg)
  • Publisher (.pub)
  • Outlook (.msg, .vcf, .ics)
  • Project (.mpp)

默认参数未针对打印作优化。如需转换为A4大小,请联系我(无偿)。

API使用说明

预备步骤

登录阿里云管理后台,选择API网关,创建应用并获取AppCode。将应用名称私发给我(联系方式见左侧菜单)。

阿里云API网关

第一步:上传待转换文件

POST
https://office2pdf.ykfz.pw/api/office2pdf/upload

Header
Authorization APPCODE 阿里云AppCode值

form-data格式(multipart/form-data; charset=utf-8)请求API,key为file,value即文件内容。

成功示例:

{"status":1,"result":{"uuid":"1b3eb909-6b77-4d01-beff-df1f1afdf5ae","formData":{}}}

postman预览

第二步:查询文件是否转换完成

GET 查询转换状态
https://office2pdf.ykfz.pw/api/office2pdf/status?uuid=[第一步获取到的UUID]

Header
Authorization APPCODE 阿里云AppCode值

成功示例:

{"status":1,"msg":"ok","result":{"url":"/api/office2pdf/download/1b3eb909-6b77-4d01-beff-df1f1afdf5ae.pdf"}}

转换不成功或者还在排队转换,则status不为1。

第三步:下载转换完成的PDF文件

GET 拼接下载地址【无需授权】
https://office2pdf.ykfz.pw/api/office2pdf/download/[第一步获取到的UUID].pdf

关于开源

项目基于https://github.com/Sicos1977/OfficeConverter进行的二次开发,进行了大量修改。也参考了其它开源项目。

此项目将来一定公开源代码,目前还在完善功能阶段,请关注我的网站Follow我的Github主页获取最新动态。现有功能成熟稳定,可放心使用。

相关项目

Node.js打印PDF文件

硬件设备

桌面设备

公共法律服务一体机

以上产品(并未用到此API)是我为律品公司研发的公共法律服务桌面设备公共法律服务柜式一体机。我目前为该公司工作,有相关需求欢迎合作。

打赏
交流区(1)
szz19960815

这个功能要实现确实不简单。

2020年7月20日 23:37回复
尚未登陆
发布
  上一篇 (MacOS Chrome信任自签名证书)
下一篇 (Docker搭配免费SSL证书)