五分钟上线——函数计算 Word 转 PDF 云服务

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 函数计算的按调用量收费,动态伸缩特性使其比较适合部署在线转化工具(如:图片裁剪,网页转图片,文字转音频)。这类转换工具通常考虑是 cpp 实现,最终编译成二进制的命令行工具或动态链接库。而函数计算支持多种语言运行时,采用 HTTP 协议进行远程调用,也非常适用于异构模式。

注意: 下面借助于 OSS 解压的方法已经不推荐,仅供学习而保留,对于大文件和依赖目前更推荐 NAS 方案,希望快速上手请移步 https://yq.aliyun.com/articles/718653

函数计算的按调用量收费,动态伸缩特性使其比较适合部署在线转化工具(如:图片裁剪,网页转图片,文字转音频)。这类转换工具通常考虑是 cpp 实现,最终编译成二进制的命令行工具或动态链接库。而函数计算支持多种语言运行时,采用 HTTP 协议进行远程调用,也非常适用于异构模式。本文将介绍如何基于 fc-libreoffice 项目快速搭建一个 Word 转  PDF 的云服务。

fc-libreoffice 是一个基于 nodejs 进行接口封装的 npm,其中内置了针对函数计算 运行时预编译的 libreoffice 。虽然 libreoffice 已经经过裁剪,并使用压缩比较高的 Brotli 算法进行压缩。但最终的压缩包大小为 84M,超过了函数计算 50M 压缩包的大小限制。所以示例项目采用上传 OSS,运行时预下载并解压 libreoffice。下文将侧重于快速搭建 libreoffice 云服务,调用几个脚本封装的 make 命令即可快速体验。

依赖工具

  • docker-ce 安装方法参考官方安装文档
  • fun 一款函数计算的编排工具,用于快速部署函数计算应用。

    MacOS 平台可以使用如下方法安装

    brew tap vangie/formula
    brew install fun

    其他平台可以通过 npm 安装

    npm install @alicloud/fun -g
  • ossutil oss 的命令行工具。将其下载并放置到 $PATH 所在目录。

克隆项目

fc-libreoffiice 项目下有一个 example 项目,进行简单配置就可以快速部署。

# 克隆项目
git clone https://github.com/awesome-fc/fc-libreoffice.git

# 进入示例工程目录
cd fc-libreoffice/example

修改配置文件

# 配置 .env 文件
cp env.example .env

填充 .env 文件里的环境变量

# 阿里云 AK。建议使用主 AK,fun 部署需要角色修改权限。
ALIBABA_CLOUD_ACCESS_KEY_ID=
ALIBABA_CLOUD_ACCESS_KEY_SECRET=

# 阿里云账户 ID。去阿里云账户中心可以查到
ALIBABA_CLOUD_ACCOUNT_ID=

# 部署的 region
ALIBABA_CLOUD_DEFAULT_REGION=

# 用于上传 liboffice 压缩文件的 oss bucket,请先去 oss 控制台创建一个
OSS_BUCKET=

部署函数并验证效果

部署函数,此过程中会安装依赖,上传 OSS,并部署函数到函数计算平台

$ make deploy
.... (此处略去了大量输出内容)

Waiting for service libre-svc to be deployed...
        Waiting for function libre-fun to be deployed...
                Waiting for packaging function libre-fun code...
                package function libre-fun code done
        function libre-fun deploy success
service libre-svc deploy success

调用函数,将预制的 example.docx 文件转换层 example.pdf 文件,并上传到 OSS。

$ make invoke
bin/invoke.sh
+ fcli function invoke -s libre-svc -f libre-fun
{"name":"example.pdf","url":"http://vangie-test.oss-cn-shanghai-internal.aliyuncs.com/example.pdf","res":{"status":200,"statusCode":200,"headers":{"server":"AliyunOSS","date":"Sat, 01 Dec 2018 03:42:25 GMT","content-length":"0","connection":"keep-alive","x-oss-request-id":"5C02032129DDF1C134B9BC7C","x-oss-event-status":"eyJSZXN1bHQiOiAiT2sifQ==","etag":"\"94829EEB576E66A2B5760DD034EECB0B\"","x-oss-hash-crc64ecma":"5833133482735102142","content-md5":"lIKe61duZqK1dg3QNO7LCw==","x-oss-server-time":"60"},"size":0,"aborted":false,"rt":83,"keepAliveSocket":true,"data":{"type":"Buffer","data":[]},"requestUrls":["http://vangie-test.oss-cn-shanghai-internal.aliyuncs.com/example.pdf"],"timing":null,"remoteAddress":"100.118.102.36","remotePort":80,"socketHandledRequests":3,"socketHandledResponses":3}}

从 OSS 下载 example.pdf 到当前目录,查看转换后的结果。

$ make download
bin/download.sh
Succeed: Total num: 1, size: 33,811. OK num: 1(download 1 objects).
0.192966(s) elapsed

下面是转换后的结果,左图为 word 源文件,右图为生成的 pdf 文件。中文和内嵌图片都效果不错。

_2018_12_01_11_47_56

小结

fc-libreoffcie/example 仅仅是一个示例项目,对于正在的生产环境应用,还有不少的优化空间,比如下载文件的完整性校验、流式解压、支持 http 接口输入源文件和输出目标文件、使用 time trigger 进行预热以减少冷启动开销等。上面几个简单的 make 命令背后调用了一些 bash 脚本编写的自动化步骤,这些步骤涉及到一些常用的函数计算领域的方法和技巧,如果您对 libreoffice 的移植过程比较感兴趣可以阅读另一篇文章《手把手教您将 libreoffice 移植到函数计算平台》或者您可以直接阅读 fc-libreoffice 的源码。

相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
目录
相关文章
|
2月前
|
小程序
公众号如何添加附传Word、Excel、Pdf、PPT文档
公众号里添加一些文档给公众号粉丝下载,比如课件PPT、申请表Word文档、岗位需求Excel表、大赛入围/获奖名单等。公众号本身是不支持直接上传文件的,但我们可以通过附件小程序“间接”上传文件。
522 0
|
10月前
|
人工智能 运维 物联网
云大使 X 函数计算 FC 专属活动上线!享返佣,一键打造 AI 应用
如今,AI 技术已经成为推动业务创新和增长的重要力量。但对于许多企业和开发者来说,如何高效、便捷地部署和管理 AI 应用仍然是一个挑战。阿里云函数计算 FC 以其免运维的特点,大大降低了 AI 应用部署的复杂性。用户无需担心底层资源的管理和运维问题,可以专注于应用的创新和开发,并且用户可以通过一键部署功能,迅速将 AI 大模型部署到云端,实现快速上线和迭代。函数计算目前推出了多种规格的云资源优惠套餐,用户可以根据实际需求灵活选择。
|
3月前
|
监控 Linux 数据安全/隐私保护
Python实现Word转PDF全攻略:从入门到实战
在数字化办公中,Python实现Word转PDF自动化,可大幅提升处理效率,解决格式兼容问题。本文详解五种主流方案,包括跨平台的docx2pdf、Windows原生的pywin32、服务器部署首选的LibreOffice命令行、企业级的Aspose.Words,以及轻量级的python-docx+pdfkit组合。每种方案均提供核心代码与适用场景,并涵盖中文字体处理、表格优化、批量进度监控等实用技巧,助力高效办公自动化。
916 0
|
4月前
|
存储 人工智能 文字识别
三款安卓手机word编辑器下载,Microsoft Word,wps office,Word手机版,手机word编辑查看阅读器,PDF转换器apk下载
WPS Office是一款功能强大的办公软件,支持文档编辑、表格处理和演示文稿制作,兼容多种格式并提供丰富的云服务。它具备低内存占用、快速运行的特点,支持跨设备同步与多人协作,内置海量模板及AI辅助功能,如智能写作和PPT自动生成。此外,还可扫描文件、编辑PDF并转换为其他格式,极大提升办公效率,适合手机用户便捷操作。
419 1
|
6月前
|
人工智能 算法 安全
使用CodeBuddy实现批量转换PPT、Excel、Word为PDF文件工具
通过 CodeBuddy 实现本地批量转换工具,让复杂的文档处理需求转化为 “需求描述→代码生成→一键运行” 的极简流程,真正实现 “技术为效率服务” 的目标。感兴趣的快来体验下把
274 10
|
7月前
|
程序员 开发者
PDF 转图片,一行代码搞定!批量支持已上线!
大家好,我是程序员晚枫!今天为大家介绍 `popdf` 的新功能:PDF 转图片,支持批量操作!只需一行代码即可完成单文件转换,批量处理也只需简单修改参数。工具简单易用,小白也能快速上手。`popdf` 是我开发的实用工具之一,旨在解决开发中的小痛点。欢迎访问 GitHub 项目地址 (<https://github.com/CoderWanFeng/popdf>),提出建议或加入开源小组,一起交流进步!快来体验吧,保证让你惊艳! 😄
321 16
DeepSeek + Xmind,1分钟自动把pdf/word文档转成思维导图
DeepSeek与Xmind结合,1分钟将PDF、Word文档转换为思维导图。只需四步:上传文档至DeepSeek,请求转换为Markdown格式,保存文件并修改后缀为.md,最后导入Xmind生成思维导图。轻松驾驭复杂文档,适用于学习笔记、工作报告、项目规划等场景,大幅提升效率!
|
8月前
|
人工智能 运维 文字识别
新书上线 |《零门槛AIGC应用实战——Serverless+AI 轻松玩转高频AIGC场景》免费下载
新书上线 |《零门槛AIGC应用实战——Serverless+AI 轻松玩转高频AIGC场景》免费下载
183 1
|
9月前
|
人工智能 运维 文字识别
新书上线 |《零门槛AIGC应用实战——Serverless+AI 轻松玩转高频AIGC场景》免费下载
《零门槛AIGC应用实战——Serverless+AI 轻松玩转高频AIGC场景》电子书正式上线!多种精选 AI 部署方案带你深入了解 Serverless+AI 最新趋势、AI 应用的架构设计与详细的部署教程等。函数计算 AI 技术解决方案助您一键上云,高效部署。

相关产品

  • 函数计算
  • 下一篇
    oss云网关配置