网站首页

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

中文Lee 2021/11/17 8449人围观
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);

相关推荐

  • PHP性能优化方案

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

  • .htaccess中301强制跳转到带www前缀或不带www的域名

    相信很多站长朋友都有这样的的问题出现。即带www前缀的域名与不带www前缀的顶级域名收录情况是不同的。这个问题主要是由于搜索引擎对于顶级域名与二级域名权重判定不同造成的。毫无疑问地,唯一的域名能够给你带来更多的好处。不管它是带www还是不带www。因为,这样无论用户还是搜索引擎都会记住你网站的唯一域...

  • 编程的程序员们,你们有语言崇拜么?比如PHP是世界上最好的语言

    有个有关程序员语言界的段子:问,你如何让一个论坛的人吵起来?答,PHP是世界上最好的语言。“PHP是世界上最好的语言”,虽然身在IT界,但说实话,这句话直到去年才明白,还是公司里招了个PHP程序员,问的他这句话到底是什么意思。大学中学的语言的话,FoxBase、C、C++,VB,Java,Ruby,...

  • CentOS下php安装imagick扩展

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

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

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

  • java 生成缩略图 imageIO异常:Unsupported Image Type, 不支持图像类型【附解决办法】

    最近再做图片生成缩略图功能,发现大部分的图片都可以生成缩略图,但是偶尔有几个图片会报异常:Unsupported Image Type;几经折腾,发现报异常的图片格式为CMYK 格式,我们常见的图片格式都是RGB格式的,所以我们要把CMYK格式的图片转换成RGB格式的,网上有些办法转化后图片颜色会丢...

  • .htaccess文件设置某目录下所有文件禁止访问

    如网站,有些目录下的文件不允许被下载则需要设置.htaccess文件为了减少服务器压力:应将apache配置文件<Directory />    AllowOverride All</Directory> 最好修改成指定目录: <...

  • Intellij IDEA 快捷键整理

    【常规】Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7...