当前位置: 首页 > news >正文

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);
});

http://www.lryc.cn/news/241563.html

相关文章:

  • 12.docker的网络-host模式
  • 如何在外部数据库中存储空间化表时使用Mapinfo_mapcatalog
  • 从Github登录的双因子验证到基于时间戳的一次性密码:2FA、OTP与TOTP
  • ubuntu22.04安装wvp-gb28181-pro 2023-11-23最新版本(一键安装)
  • Spring Boot 应用的 Docker 化:从 Maven 构建到 Docker 部署的完整指南
  • linux之chmod命令
  • 论文阅读 Forecasting at Scale (一)
  • Unity PlayerPrefs相关应用
  • LeetCode题解:13. 罗马数字转整数,哈希表,JavaScript,详细注释
  • GPT2-chitchat项目运行
  • selinux-policy-default(2:2.20231119-2)软件包内容详细介绍(3)
  • Spring boot @Bean
  • ptpd2提示failed to join the multicast group (strerror: No buffer space available)
  • 工业级5G路由器:稳定性更高,网络速度更快!
  • 移动应用程序管理的内容、原因和方式
  • Revive开发商加入VR开源标准OpenXR
  • Lambda 重构面向对象的设计模式
  • element ui 上传组件实现手动上传
  • 怎样提升伦敦银买卖技巧?
  • MySQL的体系结构与SQL的执行流程
  • 数学建模之拟合及其代码
  • GeoTrust SSL数字安全证书介绍
  • 【C++上层应用】5. 文件和流
  • JAVA爬虫1 - HttpClient的使用
  • NX二次开发UF_CSYS_map_point 函数介绍
  • Spring Web MVC
  • Debian系列的Linux发行版上部署wvp
  • 无人智能柜:经营成本低,运维智能化
  • java.lang.UnsupportedOperationException 关于Arrays.asList问题解决
  • 2023.11.23 云服务器实现 Spring Boot 项目文件上传并访问