由于工作需要,笔者正在开发文档解析相关的功能,但是目前的python3只有python-docx、pfdminer3k、python-pptx以及xlrd的模块,并不能够对doc、ppt的文件进行解析的,因此若是想解析doc、ppt就需要将其转换成docx与pptx,然后再进行解析提取。查阅了许多资料,目前转化文件来说,openoffice与libreoffice能够支持命令行操作,在转换小文件时,openoffice稍有优势,在大文件上libreoffice的转化速度会稍快些,这两者的真实差异,未能去证实。而事实证明也是无关紧要的,笔者留意到libreoofice转化的时长与文件大小并未有多大关系。但是二者的转化速度是相当慢的,比如把docx转pdf基本上耗时可能会高达4s左右(Windows系统),受服务器的影响也是蛮大的,笔者曾搭载过四台服务器上,第一台不能直视,第二台的速度最快,但是布置在生产环境上时,速度又不是那么理想了。说了那么多,想表达啥?建议转格式不要使用命令行操作,还是使用java这些拥有比较成熟的libreoffice类的语言进行转化比较好些(毫秒级)。好了,言归正传:
1、卸载系统当前的libreoffice
执行如下命令:
sudo yum erase libreoffice\*
(centos、ubuntu均有效)
或者尝试:
sudo yum remove libreoffice-*
(未能成功)
为了能使用镜像,在etc 目录之下的hosts文件内加入代理。
注意没有加的话,可能第三步无法操作,也可以不加,直接跳过。
.208.46.146 www.google.com
.208.46.146 dl.google.com
.208.46.146 dl-ssl.google.com
2、获取rpm文件
http://mirrors.ustc.edu.cn/tdf/libreoffice/stable
3、然后选择rpm然后选择x86_64
http://mirrors.ustc.edu.cn/tdf/libreoffice/stable/6.1.3/rpm/x86_64/
下载3个文件
LibreOffice_6.1.3_Linux_x86-64_rpm.tar.gz
LibreOffice_6.1.3_Linux_x86-64_rpm_sdk.tar.gz
LibreOffice_6.1.3_Linux_x86-64_rpm_langpack_zh-CN.tar.gz
centos有外网情况下,直接复制以下代码
wget http://mirrors.ustc.edu.cn/tdf/libreoffice/stable/6.1.3/rpm/x86_64/LibreOffice_6.1.3_Linux_x86-64_rpm.tar.gz
wget http://mirrors.ustc.edu.cn/tdf/libreoffice/stable/6.1.3/rpm/x86_64/LibreOffice_6.1.3_Linux_x86-64_rpm_sdk.tar.gz
wget http://mirrors.ustc.edu.cn/tdf/libreoffice/stable/6.1.3/rpm/x86_64/LibreOffice_6.1.3_Linux_x86-64_rpm_langpack_zh-CN.tar.gz
执行如下命令,解压文件(操作/usr/文件夹需要sudo权限)
sudo mkdir /usr/libreoffice
sudo tar -zxvf LibreOffice_6.1.3_Linux_x86-64_rpm.tar.gz -C /usr/libreoffice/
sudo tar -zxvf LibreOffice_6.1.3_Linux_x86-64_rpm_sdk.tar.gz -C /usr/libreoffice/
sudo tar -zxvf LibreOffice_6.1.3_Linux_x86-64_rpm_langpack_zh-CN.tar.gz -C /usr/libreoffice/
进入到的RPMS目录
上面三个文件解压之后,/usr/libreoffice/下面会有3个文件夹,里面都有一个RPMS文件夹
LibreOffice_6.1.3_Linux_x86-64_rpm
LibreOffice_6.1.3_Linux_x86-64_rpm_sdk
LibreOffice_6.1.3_Linux_x86-64_rpm_langpack_zh-CN
分别进入到RPMS的目录下 ,执行入下命令
sudo yum localinstall *.rpm
执行以上步骤,默认会将libreoffice的可执行安装在/opt/lib/libreoffice/…soffice.bin,也可以使用yum来指定安装路径:
yum -c /etc/yum.conf --installroot=/usr/local --releasever=/ localinstall *.rpm
该命令简单解释如下:
-c /etc/yum.conf 表示指定yum配置文件地址
–installroot=/usr/local 表示指定自定义的安装目录
啰嗦一句:libreoffice不能进行批量转格式,因此可能会需要尝试到安装多个软件,或者使用docker来实现批量转化,但目前公司由于网络限制docker安装、镜像拉取上存在很大难度,故此先搁浅了。
注:用yum来进行rpm的安装,不要用rpm命令来进行安装。因为有依赖关libgnomevfs-2.so.0(64bit),它被软件包 libobasis5.0-gnome-integration-6.1.3-2.x86_64 需要,所以不要使用rpm命令来进行安装, rpm -ivh *.rpm 命令无法解决上面的依赖系。使用yum遇到上面的依赖关系的时候可以从网络下载相应的包来解决依赖关系。
如果顺利,到此为止,libreoffice成功安装了.
libreoffice的使用:
soffice --headless --convert-to 目标格式(如pdf) 转格式文件 --outdir 目标文件夹
python代码:
import subprocess
p = subprocess.call("soffice --headless --convert-to pdf 转格式文件 --outdir 目标文件夹",shell=True)
assert p == 0 '转格式失败...'
以上libreoffice安装参考,有其他未知错误,读者可以参阅:
https://blog.csdn.net/diyiday/article/details/79852923
由于工作需要,笔者正在开发文档解析相关的功能,但是目前的python3只有python-docx、pfdminer3k、python-pptx以及xlrd的模块,并不能够对doc、ppt的文件进行解析的,因此若是想解析doc、ppt就需要将其转换成docx与pptx,然后再进行解析提取。查阅了许多资料,目前转化文件来说,openoffice与libreoffice能够支持命令行操作,在转换小文件时...
1、需要用到组建在转PDF,安装OpenOffice 3:下载路径:http://www.openoffice.org/download/
2、用以下命令启动OpenOffice服务
cd C:\Program Files (x86)\OpenOffice.org 3\program
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
3、在D盘的doc文件下,测试的一个abc.doc 文件,运行程序后,在该目录下回生成一个PDF
4、附上我写的DEMO,第三方包: JODConverter v2.2.1
我实现的是读取access数据库中对应WORD文件名然后到指定文件夹查找并转换,你也可以到指定文件夹中去遍历所有WORD文件转换
LibreOffice 是一款功能强大的办公软件,默认使用开放文档格式 (OpenDocument Format , ODF), 并支持 *.docx, *.xlsx, *.pptx 等其他格式。
它包含了 Writer, Calc, Impress, Draw, Base 以及 Math 等组件,可用于处理文本文档、电子表格、演示文稿、绘图以及公式编辑。
它可以运行于 Windows, GNU/Linux 以及 macOS 等操作系统上,并具有一致的用户体验。
LibreOffice 拥有所有你想要的办公软件套件的生产力功能,使其成为微软 Office 或谷歌套件的流行的开源替代品。LibreOffice 的能力之一是可以从命令行操作。例如,Seth Kenlon 最近解释了如何使用 LibreOffice 用全局命令行选项将多个文件从 DOCX 转换为 EPUB。他的文章启发我分享一些其他 LibreOffice 命令行技巧和窍门。
在查看 LibreOffice 命令的一些隐藏功能之前,你需要了解如何使用应用选项。并不是所有的应用都接受选项(除了像--...
libreoffice已经安装好,libreoffice指令可用。以我的服务器为例,由于libreoffice指令软链接到/usr/lib/libreoffice/program/soffice,所以下面凡是用libreoffice指令的地方,你用/usr/lib/libreoffice/program/soffice代替自然是一样的效果。
1、libreoffice服务的启动
启动指令是
libreoffice --headless --accept="socket,host=0.0.0.
Python 中仅命令行的 Unix 复制缓冲区管理器,与 copyq、xsel 和 xclip 最相似,但支持 MIME 类型检测,以便与桌面应用程序(如 LibreOffice 和 Web 浏览器)配合使用。
杰弗里·贝蒂斯,
提供出色的复制和粘贴功能,包括剪贴板管理。 然而,我真正想要的是轻量级的东西来处理从文件系统到 UNIX 剪贴板的穿梭数据,这就是copypasta 的用武之地。
特点和目标
UNIX哲学
MIME 类型检测
标准输入处理
便携性和便利性(现在是 Python!)
PyOD转换器
PyODConverter(用于Python OpenDocument Converter)是一个Python脚本,可使用LibreOffice或Apache OpenOffice从命令行自动执行Office文档转换。
该脚本是作为的命令行使用的一种更简单的替代编写的。
PyODConverter要求LibreOffice / Apache OpenOffice作为服务运行并在端口上侦听(默认情况下)2002; 这可以通过例如从命令行启动它来实现
$ soffice "--accept=socket,port=2002;urp;"
该脚本恰好需要2个参数:输入文件名和输出文件名。 从文件扩展名推断出文档格式。
由于该脚本使用Python / UNO桥,因此该脚本要求您的Python安装中已经存在UNO模块。 大多数情况下,这意味着您需要使用随LibreOffice
LibreOffice
特定的标签、压缩、解压缩等。
如果给定的处理器对您来说不够用,或者您想要对结果进行一些特殊处理(例如,以加密方式对生成的文档进行签名、添加水印等),您可以使用
Python
条目在您自己的包中定义自己的附加文档处理器
ulif.openoffice
将在文档处理期间自动集成它们,并在
服务、命令行客户端和
Python
中提供它们。
ulif.openoffice
unoconv
进行实际转换。
所以你必须在你的系统上安装了
unoconv
sudo apt-get install libreoffice
2、命令行执行word转pdf
将 /home/wordToPdf/wordFiles/目录下的CAS.docx转成pdf存放到 /home/wordToPdf/pdfFiles 目录下:
libreoffice –headless –convert-to pdf:writer_pdf_Export /home/wordToPdf/wordFiles/CAS.docx –outdir /home/wordToPdf/pdfFil
m0_63103318:
django动态创表与查询
Y.L6:
caffe安装--踩坑
wBekvam:
django动态创表与查询
榨菜rose: