我用的方法

word pdf 使⽤的是 libreoffice 开源office 系统。
使⽤命令是 soffice -h
仅仅使⽤了⼀个⽅法:
--convert-to output_file_extension[:output_filter_name] [-outdir ouput_dir]
files
Batch convert files.
If -outdir is not specified then current working dir is used as output_dir.
Eg. -convert-to pdf *.doc
-convert-to pdf:writer_pdf_Export -outdir /home/user *.doc
11 使⽤java jod
libreoffice 第三⽅office⼯具
安装命令
yum install libreoffice-headless
libreoffice-writer
启动命令
libreoffice5.4 --headless --accept="socket,host=127.0.0.1,port=8100;urp;" --
nofirststartwizard &
javabridge
java -jar /opt/java/webapps/JavaBridge/WEB-INF/lib/JavaBridge.jar
SERVLET_LOCALb8080
查看tomcat的⽅法
tail -f /opt/java/logs/localhost.2017-09-01.log
tail -f /opt/java/logs/catalina.log
java/opt/java/
程序在 /opt/java/webapps/ 下, enrollCertDemo 天威CA jodconverter为转换
word to pdf ⼯具
/root/ghostscript-9.21-linux-x86_64/ pdf转图⽚⼯具

参考1

我用的centos系统版本,是6.5版本64位

1、配置centos的yum源之前我的阿里云服务器的centos,好像因为没有配置yum源而使用系统自带的,通过yum install libreoffice没找到Libreoffice安装包(当然,这可能是我系统版本的问题,具体就不得而知了,因为后来搞不定又继续更换了其他版本的centos)。
yum源配置,因为我使用的是阿里云服务器,所以我使用阿里云的yum源。
配置方法:http://mirrors.aliyun.com/help/centos

2、安装Libreoffice

  1. yum install libreoffice

复制代码

然后我使用soffice命令转化doc测试文档

  1. soffice --headless --invisible --convert-to pdf doctest.docx

复制代码

然后出现报错了:

  1. /usr/lib64/libreoffice/program/soffice.bin X11 error: Can't open display:
  2. Set DISPLAY environment variable, use -display option
  3. or check permissions of your X-Server
  4. (See "man X" resp. "man xhost" for details)
  5. [root@iZ2zec51rnaynn5uqhupucZ ~]# man x
  6. Cannot open the message catalog "man" for locale "zh_CN.UTF-8"
  7. (NLSPATH="/usr/share/locale/%l/LC_MESSAGES/%N")
  8. No manual entry for x

复制代码

后来在这里找到了解决办法:http://superuser.com/questions/6 ... r-cant-open-display
我执行下面这个命令,然后解决了上面的那个报错问题:

  1. yum install libreoffice-headless

复制代码

然后我再通过soffice命令将doc测试文档转成pdf,终于顺利转化成功!

然而又出现问题了。。。

转化后的pdf文件,我看到了一个一个密密麻麻的小方框。。乱码!

然后我通过“locale -a”查看了下,是不是系统不支持中文的问题。然后发现系统是支持中文的。

  1. ....

复制代码

那么问题就可能是出现在libreoffice上,然后通过搜索引擎找到了解决办法:http://www.linuxidc.com/Linux/2012-12/77017.htm

  1. yum -y install  libreoffice-langpack-zh-Han*

复制代码

centos上运行上面的命令之后,给libreoffice安装了中文的语言支持,然后顺利地把doc测试文档无乱码地转成了pdf文件。

其实我已经不想说为了解决Libreoffice将office文档转pdf的问题已经让我折腾了三天了。。。Ubuntu和centos系统来回地更换安装测试。不过,还是终于把问题解决了。

剩下的,pdf.js实现文档在线浏览,请看这个帖子:
http://www.hc-cms.com/forum.php?mod=viewthread&tid=14

参考2

http://blog.csdn.net/ljihe/article/details/77250206

项目需要,上传doc、excel、ppt等格式文件到服务器,用户可以在线阅读。经过讨论,决定在上传文件的同时,转换出一份pdf文件保存,用户阅读就只需要展示pdf文件即可,下载可以下载原文件。因为pdf文件需要在web页面上展示还是比较方便的,直接使用html的embed标签就能实现,也可以使用一些pdf.js的插件实现:

[html] view plaincopy
  1. <!DOCTYPE HTML>
  2. <html>
  3. <body>
  4. <embed src="zpdf.pdf" width="100%" height="600">
  5. </body>
  6. </html>

首先我们需要将doc等格式的文档转换成pdf,网上搜索一翻,实现方式也就那几种,最主流的就是通过openoffice.org或者libreoffice两种方式实现,其实libreoffice也是从openoffice.org分离出来的,功能上面应该相差不大。对于要实现格式转换,两种库都可以。

我这里直接使用libreoffice的方式。

首先安装libreoffice,我的服务器是centos,直接使用:

[plain] view plaincopy
  1. [root@instance-32spzihn /]# yum install libreoffice

提示是否是要安装,执行y就可以了。

一般情况下用yum安装的包都不会是最新版本的,想要安装最新版本,只能够自己下载最新的回来,手动编译安装:

libreoffice官网:http://zh-cn.libreoffice.org/

目前最新版本:LibreOffice_5.4.0_Linux_x86-64_rpm.tar.gz

[plain] view plaincopy
  1. [root@instance-32spzihn src]# tar -zxvf LibreOffice_5.4.0_Linux_x86-64_rpm.tar.gz
  2. [root@instance-32spzihn src]# cd LibreOffice_5.4.0.3_Linux_x86-64_rpm/RPMS
  3. [root@instance-32spzihn RPMS]# yum install *.rpm

安装完成后执行:

[plain] view plaincopy
  1. [root@instance-32spzihn /]# /usr/bin/libreoffice  --invisible --convert-to pdf  zzz.docx

如果是自行编译需要带版本号:

[plain] view plaincopy
  1. [root@instance-32spzihn /]# /usr/bin/libreoffice5.4  --invisible --convert-to pdf  zzz.docx

具体情况可以先用 find / -name 'libreoffice*' 查找出相关的执行程序再处理。

竟然报错:

[plain] view plaincopy
  1. [root@instance-32spzihn /]# /usr/bin/libreoffice  --invisible --convert-to pdf  zzz.docx
  2. /usr/lib64/libreoffice/program/soffice.bin X11 error: Can't open display:
  3. Set DISPLAY environment variable, use -display option
  4. or check permissions of your X-Server
  5. (See "man X" resp. "man xhost" for details)

此时只需要安装另外一个库即可解决:

[plain] view plaincopy
  1. [root@instance-32spzihn /]# yum install libreoffice-headless

再执行转换命令,转换成功。

sz zzz.pdf,下载pdf回到本地打开发现中文乱码,这是因为缺少中文字体支付所致,所以先把 c:\Windows\Fonts文件夹复制一份到其它盘,然后打包成Fonts.zip,通过rz Fonts.zip 将压缩包传到服务器上面。

[plain] view plaincopy
  1. [root@instance-32spzihn /]# cd /usr/share/fonts
  2. [root@instance-32spzihn fonts]# rz
  3. [root@instance-32spzihn fonts]# unzip Fonts.zip
  4. [root@instance-32spzihn fonts]# mv Fonts win
  5. [root@instance-32spzihn fonts]# cd win
  6. [root@instance-32spzihn win]# chmod  -Rf 755 *
  7. [root@instance-32spzihn win]# mkfontscale
  8. [root@instance-32spzihn win]# mkfontdir
  9. [root@instance-32spzihn win]# fc-cache –fv

若没有生效可以试下重启服务器,再重新执行转换命令就可以了。

完成对文件转换后,那接下来就要将此功能加入项目开发上面,当前需要加入到一个php项目:

[php] view plaincopy
  1. $retval = 1;
  2. // exec() might be disabled
  3. $cmd = '/usr/bin/libreoffice  --invisible --convert-to pdf  zzz.docx';
  4. if (function_exists('exec')){
  5. @exec($cmd, $output, $retval);
  6. }
  7. // Did it work?
  8. if ($retval > 0){
  9. exit('process_failed');
  10. }

具体实现逻辑可以根据自己实际需求做更改,原理就是程序内执行shell命令处理。

转载于:https://www.cnblogs.com/jackduan/p/7755446.html

Libreoffice php使用命令行office转pdf,pdf转图片相关推荐

  1. pdf横向打印java_C#使用adobe acrobat reader命令行在横向打印PDF文档

    我有一个C#.NET应用程序打开adobe acrobat reader以打印PDF文件 . 我正在使用ProcessStartInfo组件: string args = "/s /h /t ...

  2. linux合并pdf命令,科学网—[转载]linux下利用命令行工具pdftk对PDF进行合并分割(转载) - 崔鹏碧的博文...

    pdftk是非常好用的PDF页面操作工具,能够切割.合并.提取指定页面等. 常用包括的功能如下:合并 PDF: 分割 PDF 页面: 旋转 PDF 页面: PDF 带密码访问: PDF 填加密码: 用 ...

  3. 利用命令行工具pdftk对PDF进行合并分割

    pdftk是非常好用的PDF页面操作工具,能够切割.合并.提取指定页面等. 参考:PDF 合并和分割工具--PDFtk 参考官网:PDFtk server: the pdf tool kit 常用包括 ...

  4. linux pdf word,linux命令行大全WORD版本.pdf

    linux 命令行大全WORD 版本 下达指令 command [-options] parameter1 parameter2 ... command:命令或者可执行文件 options:选项 pa ...

  5. JMeter命令行生成监控CPU和内存图片

    Meter 命令行执行脚本得到的报告中,是没有CPU.内存使用率等监控数据的,我们可以使用JMeter插件帮忙. 首先,需要下载JMeterPlugins-Standard.jar,jmeter-pl ...

  6. inkscape命令行转曲转pdf

    inkscape xxx.svg --export-text-to-path -o xxx.pdf

  7. linux用命令下载图片,Linux命令行中采集指定页面的图片地址及图片下载

    获取指定页面中的图片地址: curl news.baidu.com | grep -Eio '(http|ftp|https)://[A-Za-z0-9_./]+(.jpg|.png|.gif)' 复 ...

  8. wkhtmltopdf使用方法,页脚 加页码 pdftk合并pdf命令行操作

    wkhtmltopdf pdftk使用方法 htmltopdf 安装配置路径 htmltopdf 打开官网:https://wkhtmltopdf.org/downloads.html 安装配置路径 ...

  9. apache pdfbox_Apache PDFBox命令行工具:无需Java编码

    apache pdfbox 在博客文章Apache PDFBox 2中 ,我演示了将Apache PDFBox 2用作从Java代码中调用的库来操作PDF. 事实证明,Apache PDFBox 2还 ...

最新文章

  1. 清华大学计算机64班,清华大学计算机系的论比文评价.ppt
  2. HDU 2573 HDOJ 2573 Typing ACM 2573 IN HDU
  3. 错误信息Make an entry in Field Text Area
  4. [ 懒人神器 ] —— OO一键build:.zip - .jar
  5. 【软件开发底层知识修炼】十九 GDB调试从入门到熟练掌握超级详细实战教程学习目录
  6. [HTTP] Nginx代理以及面向未来的HTTP
  7. Python中selenium的玩法,小朋友看了都说学会了
  8. 拓端tecdat|R语言极值理论:希尔HILL统计量尾部指数参数估计可视化
  9. lc滤波器是利用电感的感抗_“电感”的作用与使用方法
  10. ubuntu的文件路径
  11. 程序设计方法和程序分析
  12. MASM DEBUG LINKER免费下载
  13. Linux4.14加密框架中的主要数据结构(1)—— struct crypto_alg(通用算法)
  14. python爬取12306火车票信息_python利用selenium+requests+beautifulsoup爬取12306火车票信息...
  15. 一点一滴岗位测试答案_【一点资讯】部编版语文六年级下第三单元综合测试卷(含答案)...
  16. python抓取图片数字_python 实现识别图片上的数字
  17. JAVA可以赋值分数吗,信息技术支持下的教学反思超星尔雅网课答案
  18. 学习MySQLl06《存储过程与事务》
  19. chrome控制台中console
  20. 国内常见的IT认证都有哪些?这几个入大厂必备

热门文章

  1. 机器学习模型评价指标+模型出错的四大原因及如何纠错
  2. PCI接口采集板卡的硬件逻辑开发(Actel FPGA)
  3. 管道爬行机器人内部陀螺仪_油管内壁爬行机器人的机械结构设计
  4. 本地部署 langchain-ChatGLM
  5. 51单片机DS18B20温度传感器详解
  6. USB ID 传输数据原理
  7. 市值缩水到仅剩6.55亿美元,深陷亏损泥沼优信还能抽身么?
  8. 头脑风暴优化算法(Brain Storming Optimization Algorithm, BSO)
  9. 关于健康档案的基本架构与数据标准
  10. 巴基斯坦银行联手支付宝推出区块链汇款服务