nodejs 将word转为pdf office-to-pdf

jspdf用于html转pdf。需借助html2canvas遍历页面中的dom节点,渲染成canvas image,再用jspdf把图片转为pdf。
office-to-pdf 用于word转pdf。依赖于libreOffice,需提前安装

mac安装libreOffice

1.首先需要jdk8,并配置环境变量

2.再就是需要安装libreOffice。

下载 LibreOffice_7.3.0_MacOS_x86-64.dmg 双击安装

soffice --version 提示command not found

mac默认安装在/Applications下,

在/Applications/LibreOffice.app/Contents/MacOS/soffice 找到了soffice,并且./soffice --version可以运行。

3.需要配置环境变量或者软连接到/usr/local/bin (ps:mac只能软连接到/usr/local/bin里面,/usr/bin,/usr/sbin即使使用sudo也没权限)

3-1.尝试了软连接到/usr/local/bin,运行soffice出错No Info.plist file in application bundle or no NSPrincipalClass in the Info.plist file, exiting

3-2.于是改成配置环境变量。

#查看文件内容

cat ~/.zshrc

#如果文件不存在,或者存在直接进入编辑状态

vim ~/.zshrc

#键入i,开始编辑文件,在文件中添加下列内容并保存

export PATH="/Applications/LibreOffice.app/Contents/MacOS:$PATH"

source ~/.bash_profile

再执行soffice命令,执行成功。可以编写jspdf代码了。

ubuntu安装libreOffice:

apt install openjdk-11-jre-headless

apt install libreoffice-common

apt install libreoffice-writer

apt-get install libreoffice-pdfimport //安装下面的包可以安装所有能用到的依赖

apt-get install ttf-wqy-zenhei //安装中文字体库 fix pdf转换中文乱码问题

soffice --headless --invisible --convert-to pdf model.docx //测试转换pdf

3. npm安装office-to-pdf并使用

npm install office-to-pdf -S

读取word文件并转换为pdf的代码如下:

const toPdf = require("office-to-pdf");

var docxData = fs.readFileSync( "model.docx");

toPdf(docxData).then((pdfBuffer: any) => {

fs.writeFileSync(path.resolve(__dirname, 'Pdfs/out.pdf'), pdfBuffer);

});

相关推荐
Ivanqhz9 小时前
激活函数在 Transformer 中的作用及各种变体简述
java·linux·数据库·人工智能·深度学习
hasty10 小时前
不上传新包,也能改变用户拿到的版本:npm dist-tag 的 OIDC 权限治理
前端·npm·node.js
殷色玫瑰12 小时前
C/C++ 内存管理详解:从内存分布到 new/delete 底层原理
java·linux·c语言·c++
꯭自꯭闭꯭13 小时前
DM7主备升级方案
linux·服务器·数据库
用户41071920132513 小时前
VMware 虚拟机Ubuntu 环境linux远程连接失败
linux
lisanmengmeng13 小时前
Nagios邮件报警的配置
linux·运维·服务器
Ruiery14 小时前
Linux 6.6内核 CPU 深度解析(六):cpufreq
linux·运维·服务器
倔强的石头10614 小时前
【Linux指南】动静态库系列(十一):PLT 与延迟绑定:第一次调用动态库函数时发生了什么
linux·人工智能·python
硅基手札15 小时前
【linux内核专栏 08】时间与定时器
linux·运维·服务器
想做小南娘,发现自己是女生喵15 小时前
Linux之Ubuntu入门篇知识总结
linux·运维·服务器