乔山办公网我们一直在努力
您的位置:乔山办公网 > word文档 > word官网-开发函数计算的正确姿势——借助LibreOffice 将 Word 转换成 PDF

word官网-开发函数计算的正确姿势——借助LibreOffice 将 Word 转换成 PDF

作者:乔山办公网日期:

返回目录:word文档

前言

首先介绍下在本文出现的几个比较重要的概念:


函数计算(Function Compute):函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。函数计算更多信息参考。


Funcraft:Funcraft 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API 网关、日志服务等资源。它通过一个资源配置文件(template.yml),协助您进行开发、构建、部署操作。Funcraft 的更多文档参考。


LibreOffice:LibreOffice 是由文档基金会开发的自由及开放源代码的办公室套件。LibreOffice套件包含文字处理器、电子表格、演示文稿程序、矢量图形编辑器和图表工具、数据库管理程序及创建和编辑数学公式的应用程序。参见维基百科词条


备注: 本文介绍的技巧需要 Funcraft 版本大于等于 3.0.0-beta.7 。


依赖工具

本项目是在 MacOS 下开发的,涉及到的工具是平台无关的,对于 Linux 和 Windows 桌面系统应该也同样适用。在开始本例之前请确保如下工具已经正确的安装,更新到最新版本,并进行正确的配置。


  • Docker
  • Funcraft

Fun 工具依赖于 docker 来模拟本地环境。


对于 MacOS 用户可以使用 homebrew 进行安装:


brew cask install dockerbrew tap vangie/formulabrew install fun

Windows 和 Linux 用户安装请参考:


  1. https://github.com/aliyun/fun/blob/master/docs/usage/installation.md

安装好后,记得先执行 fun config 初始化一下配置。


注意, 如果你已经安装过了 funcraft,确保 funcraft 的版本在 3.0.0-beta.7 以上。


$ fun --version3.0.0-beta.7初始化

使用 fun init 命令可以快捷地将本模板项目初始化到本地。


$ fun init vangie/libreoffice-example安装依赖

$ fun installInstalling recursively on fun.ymlskip pulling image aliyunfc/runtime-nodejs8:build-1.6.1...Task => [UNNAMED] => apt-get update (if need) => apt-get install -y -d -o=dir::cache=/code/.fun/tmp/install libnss3 --reinstall => bash -c for f in $(ls /code/.fun/tmp/install/archives/*.deb); do dpkg -x $f /code/.fun/root; mkdir -p /code/.fun/tmp/install/deb-control/${f%.*}; dpkg -e $f /code/.fun/tmp/install/deb-control/${f%.*}; if [ -f "/code/.fun/tmp/install/deb-control/${f%.*}/postinst" ]; then FUN_INSTALL_LOCAL=true /code/.fun/tmp/install/deb-control/${f%.*}/postinst configure; fi; done; => bash -c 'rm -rf /code/.fun/tmp/install/archives'Task => [UNNAMED] => bash -c 'npm install --production && mkdir -p .fun/nas/auto-default/libreoffice/ && mv ./node_modules/fc-libreoffice/bin/lo.tar.br .fun/nas/auto-default/libreoffice/'info looking for cached prebuild @ /root/.npm/_prebuilds/95f620-iltorb-v2.4.3-node-v57-linux-x64.tar.gzhttp request GET https://github.com/MayhemYDG/iltorb/releases/download/v2.4.3/iltorb-v2.4.3-node-v57-linux-x64.tar.gzhttp 200 https://github.com/MayhemYDG/iltorb/releases/download/v2.4.3/iltorb-v2.4.3-node-v57-linux-x64.tar.gzinfo downloading to @ /root/.npm/_prebuilds/95f620-iltorb-v2.4.3-node-v57-linux-x64.tar.gz.152-11c561798275d.tmpinfo renaming to @ /root/.npm/_prebuilds/95f620-iltorb-v2.4.3-node-v57-linux-x64.tar.gzinfo unpacking @ /root/.npm/_prebuilds/95f620-iltorb-v2.4.3-node-v57-linux-x64.tar.gzinfo unpack resolved to /code/node_modules/iltorb/build/bindings/iltorb.nodeinfo unpack required /code/node_modules/iltorb/build/bindings/iltorb.node successfullyinfo install Successfully installed iltorb binary!npm WARN libreoffice-example@1.0.0 No descriptionnpm WARN libreoffice-example@1.0.0 No repository field.部署

$ fun deployusing template: template.ymlusing region: cn-shanghaiusing accountId: ***********4733using accessKeyId: ***********EUz3using timeout: 60Waiting for service libreoffice to be deployed... make sure role 'aliyunfcgeneratedrole-cn-shanghai-libreoffice' is exist role 'aliyunfcgeneratedrole-cn-shanghai-libreoffice' is already exist attaching police 'AliyunECSNetworkInterfaceManagementAccess' to role: aliyunfcgeneratedrole-cn-shanghai-libreoffice attached police 'AliyunECSNetworkInterfaceManagementAccess' to role: aliyunfcgeneratedrole-cn-shanghai-libreoffice using 'VpcConfig: Auto', Fun will try to generate related vpc resources automatically vpc already generated, vpcId is: vpc-uf6jphcirs45lekbtw59k vswitch already generated, vswitchId is: vsw-uf6gmxg7cyl3dlohlck9p security group already generated, security group is: sg-uf6hkd156qntmzxr51h3 generated auto VpcConfig done: {"vpcId":"vpc-uf6jphcirs45lekbtw59k","vswitchIds":["vsw-uf6gmxg7cyl3dlohlck9p"],"securityGroupId":"sg-uf6hkd156qntmzxr51h3"} using 'NasConfig: Auto', Fun will try to generate related nas file system automatically nas file system already generated, fileSystemId is: 3f95748ba7 nas file system mount target is already created, mountTargetDomain is: 3f95748ba7-ips53.cn-shanghai.nas.aliyuncs.com generated auto NasConfig done: {"UserId":10003,"GroupId":10003,"MountPoints":[{"ServerAddr":"3f95748ba7-ips53.cn-shanghai.nas.aliyuncs.com:/libreoffice","MountDir":"/mnt/auto"}]} Checking if nas directories /libreoffice exists, if not, it will be created automatically Checking nas directories done ["/libreoffice"] Waiting for function word2pdf to be deployed... Waiting for packaging function word2pdf code... The function word2pdf has been packaged. A total of 1019 files files were compressed and the final size was 6.36 MB function word2pdf deploy successservice libreoffice deploy success执行

$ fun invoke word2pdfusing template: template.yml========= FC invoke Logs begin =========FC Invoke Start RequestId: 20e7c0e4-d674-4be0-854f-bd876dc00043load code for handler:index.handlerError: source file could not be loaded2019-09-17T13:57:35.716Z 20e7c0e4-d674-4be0-854f-bd876dc00043 [verbose] convert success.FC Invoke End RequestId: 20e7c0e4-d674-4be0-854f-bd876dc00043Duration: 4741.22 ms, Billed Duration: 4800 ms, Memory Size: 640 MB, Max Memory Used: 578.54 MB========= FC invoke Logs end =========FC Invoke Result:pdf save to /tmp/example.pdf

PDF 文件会写入到 /tmp 目录,如果希望能看到结果,可以把文件上传到 OSS,然后从 OSS 下载下来。


参考阅读
  1. 五分钟上线——函数计算 Word 转 PDF 云服务
  2. https://github.com/awesome-fc/fc-libreoffice
  3. 模板项目

作者:倚贤


本文为云栖社区内容,未经允许不得转载。


本文标签:word官网(31)

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网