ubuntu没网环境安装libreoffice和unoconv,用以word转pdf用

linux小白,记录下自己

有个需求。linux ubuntu服务器上需要安装执行命令转pdf,需要使用libreoffice

但是有些机器没联网,需要一个这样的离线安装包。

思路步骤:

1.在本地虚拟机进行安装

2.步骤一安装完成后复制deb包

3.编写脚本一键安装


实际操作:

1.装好虚拟机,由于虚拟机ubuntu版本是16.04,更新不到最新的libreoffice,所以需要先添加PPA的sudo add-apt-repository ppa:libreoffice/ppa。然后再更新sudo apt update,若是之前装了老版本先卸载掉sudo apt remove libreoffice-gtk,执行sudo apt  -d dist-upgrade && sudo -d apt install libreoffice-gtk2 libreoffice-gnome下载所需的软件包。然后到软件包存储的默认的路径下面手动安装,sudo dpkg -i *.deb。然后再安装unoconv。

ok,现在试了下是可以进行转化的了,命令doc2pdf template.docx,但是若是存在中文可能会有乱码问题,安装字体即可


2.copy上一步的包出来,到一个干净的ubuntu16.04环境尝试。目录如下,执行手动安装 ,发现是ok的



3.现在可以完整地编写脚本。此时的目录结构如下,sh文件夹下的install-libreoffice.sh内容如下。


------------------install-libreoffice.sh

echo "start install libreoffice..."
#sudo dpkg -i install-font/*.deb
sudo dpkg -i libreoffice/*.deb
sudo dpkg -i unoconv/*.deb
sudo cp -r winfonts /usr/share/fonts
cd /usr/share/fonts/winfonts/
sudo mkfontscale
sudo mkfontdir
sudo fc-cache -fv
echo "install libreoffice finished."
cd -
doc2pdf *.docx
doc2pdf *.docx
result=$(ls -l *.pdf|grep "^-" | wc -l)
echo $result
if [ $result -ge 1 ]
then 
   echo "install success"
else
   echo "install fail, please check install.log for details"
fi


---------------------install.sh

echo "start exec install-libreoffice.sh"
source sh/install-libreoffice.sh 2>&1 | tee install.log


执行方式:

1.执行命令chmod +x install.sh
2.执行安装脚本./install.sh
注意:
1.执行过程可能需要键盘操作设置一次协议的确定和同意操作:第一个选OK,第二个选Yes
2.执行完脚本后看最后输出,install success或者install fail, please check install.log for details既知道安装是否成功



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Node.js 是一种在服务器端运行的 JavaScript 运行环境,可以用于实现各种各样的应用程序。而 LibreOffice 是一款免费、开源的办公软件套件,其中包括了 Writer、Calc、Impress 等应用程序,支持多种文档格式。下面是一个基于 Node.js 和 LibreOffice 的实现 Word PDF 的简单方法: 1.安装 LibreOffice:首先需要在服务器上安装 LibreOffice,可以通过命令行或者图形界面进行安装。 2.使用 Node.js 的 child_process 模块:在 Node.js 中可以通过 child_process 模块来执行系统命令,在本例中可以使用该模块执行 LibreOffice 的命令行工具来进行 Word PDF 的操作。 3.编写 Node.js 代码:可以通过 Node.js 编写一个简单的脚本来实现 Word PDF。以下是一个简单的示例代码: ```javascript const { spawn } = require('child_process'); const inputFilePath = '/path/to/input.docx'; const outputFilePath = '/path/to/output.pdf'; const libreoffice = spawn('libreoffice', [ '--headless', '--convert-to', 'pdf', inputFilePath, '--outdir', outputFilePath, ]); libreoffice.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); libreoffice.stderr.on('data', (data) => { console.error(`stderr: ${data}`); }); libreoffice.on('close', (code) => { console.log(`child process exited with code ${code}`); }); ``` 以上代码中,spawn 方法会启动一个新的进程来执行 LibreOffice 命令行工具。'--headless' 参数表示以无头模式运行,'--convert-to pdf' 参数表示换成 PDF 格式,inputFilePath 参数表示输入文件的路径,'--outdir' 参数表示输出文件的路径。 4.运行 Node.js 代码:在终端中运行 Node.js 脚本即可进行 Word PDF 的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值