Linux平台中使用PHP把word转pdf的实现方法

Linux平台中使用PHP把word转pdf的实现方法

1、ubantu下安装libreoffice

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/pdfFiles
 
/usr/share/fonts 下放中文字体
fc-cache-fv 更新字体缓存

在php中执行的代码

$a='./doc/2.doc';
$b='./pdf';
//$str ="libreoffice --headless --convert-to pdf:writer_pdf_Export ./doc/2.doc --outdir ./pdf";
//$str ='ls '.'./';
$str = "export HOME=/tmp && libreoffice --headless -convert-to pdf /var/www/html/doc/2.doc -outdir /var/www/html/pdf";
var_dump(system($str));

在linux中使用php将word文档转为pdf

使用本教程需要在linux中安装openoffice,改页面中有详细的安装与使用教程
linux平台的office文档转pdf的实例(程序员的菜))。

既然,你看了该教程就应该不能否认linux的权限的确很坑人。而用php将word文档转pdf文档,更是需要一大堆权限设置。因此,在这里我就给php用到有关目录和文件都给予了777权限。

从该文中(linux平台的office文档转pdf的实例(程序员的菜))可以很清楚的知道重点代码:(如下)

java -jar /usr/local/wenku/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar    /tmp/1.doc    /tmp/1.pdf

从以上代码中可知,php要用到java命令的执行权限,需要/tmp的读写权限。

查看java命令的位置:which java

假设java命令的位置为:/bin/java

要给java设置777的权限:chmod 777 /bin/java

给/tmp文件夹及以下的文件设置权限: chmod -R 777 /tmp

设置好权限后。即可使用php的exec函数运行该段代码:java -jar /usr/local/wenku/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar    /tmp/1.doc    /tmp/1.pdf

以上这篇Linux平台中使用PHP把word转pdf的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 解决linux下openoffice word文件转PDF中文乱码的问题

    网上很多介绍是由于jdk中的没有字体导致乱码,而我遇到的是转换过程并未报错,但转换后的PDF中是乱码,尝试在jre/lib/fonts/中增加字体,还是不能解决问题,因此可以判断非jre字体问题,是linux系统字体问题. 用vim /etc/fonts/fonts.conf,可以看到系统字体文件在/usr/share/fonts,将windows系统字体文件连接到此目录下 ln -s /usr/local/fonts fonts 然后更新缓存:fc-cache 重启openoffice: /o

  • Linux平台中使用PHP把word转pdf的实现方法

    Linux平台中使用PHP把word转pdf的实现方法 1.ubantu下安装libreoffice 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/wordToP

  • linux shell 中数组的定义和for循环遍历的方法

    linux shell中的语法和普通编程语言 c/c++ java 的不太一样,平时用的不多,所以总是记不住,写脚本才会去查怎么用. 今天突然被问到数组怎么去遍历.平时写shell脚本也经常遍历数组,但是一下没答上来,被鄙视了. 所以平时学习还是好好总结吧,不能每次都问度娘谷爷.IT 知识体系较为庞大,细节的东西也太多,平时遇到问题应该的多总结记笔记. linux 中定义一个数据的语法为: variable=(arg1 arg2 arg3 ....) 中间用空格分开.数组的下标从0开始. 1 获

  • 在 Linux 终端中查找域名 IP 地址的命令(五种方法)

    本教程介绍了如何在 Linux 终端验证域名或计算机名的 IP 地址.本教程将允许你一次检查多个域.你可能已经使用过这些命令来验证信息.但是,我们将教你如何有效使用这些命令在 Linux 终端中识别多个域的 IP 地址信息. 可以使用以下 5 个命令来完成此操作. dig 命令:它是一个用于查询 DNS 名称服务器的灵活命令行工具. host 命令:它是用于执行 DNS 查询的简单程序. nslookup 命令:它用于查询互联网域名服务器. fping 命令:它用于向网络主机发送 ICMP EC

  • Linux操作系统中安装和试用IE、Office等软件

    听说出了一种新的Linux中文版本,LinXP,可以在Linux下运行IE6.0 及Office 2000,PhotoShop 7等Windows应用软件,太好了,其实用Windows软件大家主要还是因为许多常用的应用软件如IE,Office 等只能在Windows下运行,而Windows经常出现的蓝屏.死机.网络病毒让人叫哭不迭,如果能在Linux下运行这些常用的应用软件,又能享受Linux稳定的内核,强大的网络的安全性,无疑对广大的用户来说又多了一种新的选择.(可以躲过一浪接一浪的网络病毒攻

  • 5个Linux平台程序员最爱的开发工具汇总

    Linux程序员经常抱怨,自从他们使用了免费开源的系统平台后,作为一名程序员,却并没有在代码编辑器上得到足够的重视.他们往往会认为Linux平台上的代码编辑器太少了,以至于影响他们的编程工作.但是事实并非如此,在Linux平台上有太多的代码编辑器供你使用了,下面我们分享了5个最受Linux程序员欢迎的代码编辑器,继续在编程的路上前行吧! 1.Eclipse Eclipse是一款很酷的开源代码编辑器,同时它也是最受程序员亲睐的代码编辑器之一,它拥有代码高亮和智能提示等强大的功能.在Eclipse中

  • 详解Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作,具体如下: 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操作系统 1.2 Oracle安装介质 1.3 共享存储规划 1.4 网络规划分配 2.主机配置 2.1 使用yum安装oracle-validated包来简化主机配置的部分工作 2.2 共享存储配置 2.3 配置/etc/hosts 2.4 配置Oracle用户等价性 2.5 创建软件目

  • 详解Linux系统中的tempfs与/dev/shm

    tmpfs 是 Linux/Unix 系统上的一种基于内存的文件系统,即 tmpfs 使用内存或 swap 分区来存储文件. Linux 内核中的 VM 子系统负责在后台管理虚拟内存资源 Virtual Memory,即 RAM 和 swap 资源,透明地将 RAM 页移动到交换分区或从交换分区到 RAM 页,tmpfs 文件系统需要 VM 子系统的页面来存储文件.tmpfs 自己并不知道这些页面是在交换分区还是在 RAM 中:做这种决定是 VM 子系统的工作.tmpfs 文件系统所知道的就是它

  • Linux平台php命令行程序处理管道数据的方法

    本文实例讲述了Linux平台php命令行程序处理管道数据的方法.分享给大家供大家参考,具体如下: linux下有一个强大的命令|(管道提示符).它的作用是将前一个命令的结果交给后一条命令并作为后一条命令的输入.而linux下的大多数命令 也都支持这种方式.可是当笔者写完一个php的命令行小程序以后,对于怎样获得前一个命令的结果却陷入了僵局.难道php不支持这样的操作? 于是又开始问google大叔.找来找去,都是说php的命令行模式是怎么回事儿,也没有和我想知道的问题相关的资料.难道是俺的关键字

  • 详谈Linux开发中常见段错误问题的原因及分析

    1    使用非法的内存地址(指针),包括使用未经初始化及已经释放的指针.不存在的地址.受系统保护的地址,只读的地址等,这一类也是最常见和最好解决的段错误问题,使用GDB print一下即可知道原因. 2    内存读/写越界.包括数组访问越界,或在使用一些写内存的函数时,长度指定不正确或者这些函数本身不能指定长度,典型的函数有strcpy(strncpy),sprintf(snprint)等等. 3    对于C++对象,应该通过相应类的接口来去内存进行操作,禁止通过其返回的指针对内存进行写操

  • Linux系统中bash shell编程的10个基础问题讲解

    第1问:为何叫做shell? 在介绍 shell 是什么东西之前,不妨让我们重新审视使用者与电脑的关系.我们知道电脑的运作不能离开硬件,但使用者却无法直接对硬件作驱动,硬件的驱动只能透过一个称为"操作系统(Operating System)"的软件来控管,事实上,我们每天所谈的linux,严格来说只是一个操作系统,我们称之为"核心(kernel)".然而,从使用者的角度来说,使用者也没办法直接操作kernel,而是透过kernel的"外壳"程序,

随机推荐