网站首页

centos上libreoffice+unoconv安装步骤,实现word转pdf(可以php读取pdf页码)

中文Lee 2021/11/17 7593人围观
PHP   linux  

php读取docx页码比较难操作,并且读取doc格式的页码数更难搞了,

所以先将doc/docx/pptx/ppt 先转换为pdf,然后通过pdf读取页码就比较精确了

一、libreoffice安装

1、yum search  libreoffice查询一下系统自带的安装包

安装libreoffice.x86_64这个就可以了
 
2、yum install libreoffice.x86_64   执行安装
 
3、启动进程: 切换目录至: /usr/lib64/libreoffice/program/
       执行:soffice --accept="socket,host=127.0.0.1,port=8100;urp;"-display :1&
如果报下面错误:

首先确认一下是否安装了:xorg-x11-server_Xvfb.x86_64,如果没有先安装一下,
 如果已安装xorg-x11-server_Xvfb.x86_64,则执行一下:export DISPLAY=:1看问题是否能够解决
 
 
二、unoconv安装
 

1、http://pkgs.repoforge.org/unoconv/在这里下载适合你自己系统的unoconv安装包,我下载的是unoconv-0.5-1.el6.rf.noarch.rpm ,如果以上链接不可用可以在http://rpmfind.net/linux/RPM/dag/redhat/el6/i386/unoconv-0.5-1.el6.rf.noarch.html上下载

或者点击下载unoconv-0.5-1.el6.rf.noarch.rpm

 
2、yum install unoconv-0.5-1.el6.rf.noarch.rpm 进行安装
 
三、执行转换
 
unoconv -f pdf -o /data/wwwroot/1.pdf /data/wwwroot/1.docx
 
如果转换中报下面错误:

则需要使用dbus-uuidgen >/usr/var/lib/dbus/machine-id
产生这个machine-id文件
 


通过php方法调用以上命令即可,例如:

        $cmd_body = "/usr/bin/unoconv -f pdf -o {$pdfPath} {$path}";

        $cmd_head = "su --login root --command";

        $rootpasswd = "服务器密码";

        $cmd_full = \sprintf("%s \"%s\"", $cmd_head, $cmd_body);

        $fp = \popen($cmd_full, "w");

        \fputs($fp, $rootpasswd);

        \pclose($fp);


也可以使用php 中的 exec去执行!



php去取 pdf 页码

$pdftext = file_get_contents(APP_PATH . "public/tmp/2.pdf");

$num = preg_match_all("/\/Page\W/", $pdftext, $dummy);

相关推荐

  • php7下安装event扩展

    一·、安装支持库libevent,需要编译高版本(这里以最新版本release-2.1.8-stable为例)1. wget -c https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent...

  • mysqlbinlog 保存为sql文件。

    执行如下命令:mysqlbinlog -vv --base64-output=decode-rows binlog路径 --result-file=要保存的sql路径例如:/www/server/mysql/bin/mysqlbinlog -vv --base64-output=decode-row...

  • centos7 docker安装openjdk并运行jar包

    第一步:docker pull openjdk第二步:创建一个java_app的数据卷 docker volume create java_app第三步:将jar包上传到/var/lib/docker/volumes/java_app/_data/下,然后启动镜像第四步:启动docker ...

  • PHP性能优化方案

    常用性能优化方案1.使用单引号替换双引号,单引号在运行的时候不检查运行引号内部的变量,执行效率是双引号的两倍;2.使用PHP内置的数组操作方法,PHP内置的数组操作方法的运行效率是自行编写代码的10倍以上;3.使用字符串函数替换正则函数,例如:使用 str_replace 替换&...

  • CentOS下php安装imagick扩展

    1、安装ImageMagic[root@localhost download]# wget http://www.imagemagick.org/download/ImageMagick.tar.gz[root@localhost download]# tar -xzvf ImageMagick[r...

  • php的性能优化

    1.尽量静态化:   如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍。   当然了,这个测试方法需要在十万级以上次执行,效果才明显。   其实静态方法和非静态方法的效率主要区别在内存:静态方法...

  • 面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)

    1、什么是 Redis?.2、Redis 的数据类型?3、使用 Redis 有哪些好处?4、Redis 相比 Memcached 有哪些优势?5、Memcache 与 Redis 的区别都有哪些?6、Redis 是单进程单线程的?7、一个字符串类型的值能存储最大容量是多少?8、Redis 的持久化机...

  • centos7/linux 服务器 添加新硬盘并挂载

    一、查看现有磁盘设备  fdisk -l  发现/dev/sdb 为新加的硬盘;二、开始分区  fdisk /dev/sdb  fdisk -l    #再次查看分区情况,已经有了/dev/sdb1三、创建文件系统,并格式化  mkfs.ext4 /dev/sdb1四、将新分区挂在到文件系统  mk...