Docker安装unoconvert

Docker安装unoconvert

1 介绍

unoconvert是使用LibreOffice作为文档转换服务器。这个比kkfileview快,转出的效果要好一点。

https://github.com/unoconv/unoserver

2 使用Docker安装服务

2.1 创建容器

使用libreoffice安装unoconvert

# 下载镜像
docker pull linuxserver/libreoffice:25.2.5

创建容器

docker run -itd \
--name pyunoconv \
linuxserver/libreoffice:25.2.5

2.2 创建环境

(1)设置环境

进入容器

docker exec -it pyunoconv /bin/bash

在Linux中添加环境变量,如果不设置会出现下面的问题。

ImportError: Could not find the 'uno' library. This package must be installed with a Python installation that has a 'uno' library. This typically means you should install it with the same Python executable as your Libreoffice installation uses.

设置环境变量

export URE_BOOTSTRAP=vnd.sun.star.pathname:/usr/lib/libreoffice/program/fundamentalrc
export PATH=/usr/lib/libreoffice/program:$PATH
export UNO_PATH=/usr/lib/libreoffice/program
export LD_LIBRARY_PATH=/usr/lib/libreoffice/program:/usr/lib/libreoffice/ure/lib
export PYTHONPATH=/usr/lib/libreoffice/program:$PYTHONPATH

(2)解决中文乱码

没安装中文字体会出现转换时都是空,无法转中文。解决方法将Windows下的C:\Windows\Fonts的字体全部打包为”Fonts.zip“,复制到容器中的/usr/share/fonts/

在宿主机中将"Fonts.zip"复制到容器中。

docker cp Fonts.zip pyunoconv:/home/

在pyunoconv容器中解压和移动字体

# 进入容器
docker exec -it pyunoconv /bin/bash

# 进入目录
cd /home

# 进入容器解压字体包
unzip Fonts

# 将字体移动到字体目录下
mv Fonts/* /usr/share/fonts/

(3)创建环境

# 进入容器中的home目录
cd /home

# 在home中创建虚拟环境
python -m venv pyunoconv

# 激活虚拟环境
source ./pyunoconv/bin/activate

# 安装依赖包
pip install unoserver

2.3 转PDF文件

(1)直接使用libreoffice转PDF

此方法比较耗时

libreoffice --headless --convert-to pdf /home/test7.docx

(2)使用unoserver转化

# (1)进入虚拟环境
source /home/pyunoconv/bin/activate

# (2)启动unoserver服务
unoserver

# (3)转化PDF文件
unoconvert test7.docx test7.pdf

(3)截图

启动服务截图

在这里插入图片描述

转换文件

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值