第一步:安装jodconverter,安装之后可以实现doc文档转成pdf。

文件下载地址为http://www.artofsolving.com/opensource/jodconverter
下载了之后直接解压,解压到/opt目录下/opt/jodconverter-2.2.2/,使用到的文件是安装包内的lib/jodconverter-cli-2.2.2.jar。
测试是否可以使用

  1. java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /home/php/1.doc /home/php/1.pdf

这里提示缺少java软件包,并会提示几个安装包供。选择我安装openjdk-6-jre-headless,命令如下:

  1. sudo apt_get openjdk-6-jre-headless

安装之后再运行上面doc转pdf的命名,会提示openoffice进程未启动,

因为JODConverter是通过OpenOffice來做转换的 ,所以使用前需要先安裝OpenOffice, 並且將OpenOffice的Service启动, 才可以使用. 启动命令

sudo /usr/bin/soffice  -headless -accept="socket,host=127.0.0.1,port=8100;urp" -nofirststartwizard

到此运行上面的doc转pdf的命令已经可以成功。

如果系统没有按照openoffice或者曾经安装过liboffice

参考下面步骤

如果系统安装了libreoffice

参考下面步骤

如果安装了libreoffice 执行  sudo apt-get purge libreoffice*

一、下载“openOffice.org”的DEB安装包
到中文官网上下载DEB安装包 , 网址:http://download.openoffice.org/other.html#en-US,现在(2011年6月1日)的最新版是 3.3.0,我下载的文件是“OOo_3.3.0_Linux_x86_install-deb_zh-CN.tar.gz”。并将下载的文件复制到主目
录(即当前登录用户的主目录,这样所在文件夹名字不带汉字,可防发生意外)下。
二、卸载“LibreOffice”
利用“新立得”或“软件中心”卸载“LibreOffice”。用新立得卸载时,在新立得中搜索“LibreOffice”,结果中有“LibreOffice”的已安装文件一律卸载。
三、安装“openOffice.org”:
1、解压文件
打开终端,输入命令:
sudo tar -zxvf Ooo_3.3.0_Linux_x86_install-deb_zh-CN.tar.gz,得到文件夹“OOO330_m20_native_packed-1_zh-CN.9567”。

2、进入解压后的文件夹中的“DEBS”文件夹
命令:cd ./OOO330_m20_native_packed-1_zh-CN.9567/DEBS 。
3、安装主文件
命令:sudo dpkg -i *.deb 安装“DEBS”包内的全部“.deb”文件。此包内的文件全部安装后,在系统菜单的“办公”菜单下还不能找到“openOffice.org”的快捷方式,继续安装。
4、进入“DEBS”包内的“desktop-integration”文件夹
命令:cd desktop-integration 。
5、安装“openOffice.org”的快捷方式
安装“desktop-integration”文件夹内的“.deb”文件,命令:
sudo dpkg -i *.deb,此命令执行完后,如果没有错误提示,OK。这时你就可在系统菜单中的“办公”菜单中找到“openOffice.org”的快捷方式了。

第二步:安装swftools,安装之后可以实现pdf文件转成swf

  1. wget http://www.swftools.org/swftools-0.9.1.tar.gz
  2. tar xzf swftools-0.9.1.tar.gz
  3. cd swftools-0.9.1
  4. ./configure
  5. make
  6. make install

测试是否可以使用

pdf2swf -o /home/php/1.swf -z -t -f /home/php/1.pdf -s flashversion=9

第三步:用FlexPaper实现在线预览,里面有详细的demo。

第四步:使用php测试文档转换命令:
文档转pdf

  1. <?php
  2. $doc = './docs/test.txt';
  3. $formatName = './pdf/test.pdf';
  4. $command = 'java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar '.$doc.' '.$formatName;
  5. exec($command);
  6. echo 'ok';

pdf转swf

  1. <?php
  2. $pdf = './pdf/test.pdf';
  3. $swf = './swf/test.swf';
  4. $command = '/usr/local/wenku/swftools-0.9.1/src/pdf2swf -o '.$swf.' -T -z -t -f '.$pdf.' -s flashversion=9';
  5. exec($command);
  6. echo 'ok';

php脚本去运行上面的命令可能存在权限的问题无法执行
其中我测试使用的php脚本调用pdf2swf进行转换文件,生成不了。这样只需配置apache的用户权限即可,确保配置的用户有权限运行pdf2swf命令
默认安装的php环境ubuntu下配置文件是/etc/apache2/apache2.conf修改这两行,
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_USER}

配置完之后,重启apache。
/etc/init.d/apache2 restart

到此linux下的安装配置就结束了。

window下测试

下载window下使用的Pdf2Swf tool和FlexPaper,手动的将pdf文件转swf后进行在线查看的功能。

步骤整理如下:

1.安装Pdf2Swf tool之后,进行将pdf转swf。cmd命令行:
pdf2swf.exe -t D:\wamp5.3\www\test\pdf\c.pdf -s flashversion=9 -o D:\wamp5.3\www\test\swf\c.swf
-t: 源文件路径,即待转换的pdf文件路径。
-s: 设置参数,这里我们设置为 flashversion=9 ,即可以转换为9 的版本啦。
-o: 输出文件的路径,这里我输出到D:盘下

运行的结果如图所示:

2.使用FlexPaper插件显示浏览swf文件。这里下载使用的版本是1.5.8 Flash Version (release notes)。软件包内就已经有html版本的demo,稍微改动下句可以实现了。

代码如下:

  1. <script src="js/flexpaper_flash.js" type="text/javascript"></script>
  2. <a id="viewerPlaceHolder" style="width:680px;height:480px;display:block;"/></a>
  3. <script type="text/javascript">
  4. var fp = new FlexPaperViewer(
  5. 'FlexPaperViewer',
  6. 'viewerPlaceHolder', { config : {
  7. SwfFile : escape('c.swf'),
  8. Scale : 0.1,
  9. ZoomTransition : 'easeOut',
  10. ZoomTime : 0.5,
  11. ZoomInterval : 0.2,
  12. FitPageOnLoad : true,
  13. FitWidthOnLoad : false,
  14. FullScreenAsMaxWindow : false,
  15. ProgressiveLoading : false,
  16. MinZoomSize : 0.2,
  17. MaxZoomSize : 5,
  18. SearchMatchAll : false,
  19. InitViewMode : 'Portrait',
  20. PrintPaperAsBitmap : false,
  21. ViewModeToolsVisible : true,
  22. ZoomToolsVisible : true,
  23. NavToolsVisible : true,
  24. CursorToolsVisible : true,
  25. SearchToolsVisible : true,
  26. localeChain: 'en_US'
  27. }})
  28. </script>

到此就结束了,查看效果如图实现:

上面为ubuntu环境安装

centos安装如下

第一步安装openoffice

安装最新的openoffice 需要最新的系统,redhadserver5.5不行,因为里面GLIBC最高是2.5的,最新的openoffice需要GLIBC_2.11。所以openoffice安装到了线上的阿里云上面的CentOS 6.2上面。

1:下载最新的 openoffice

地址:

http://jaist.dl.sourceforge.net/project/openofficeorg.mirror/localized/zh-CN/3.4.1/Apache_OpenOffice_incubating_3.4.1_Linux_x86-64_install-rpm_zh-CN.tar.gz

>wget http://jaist.dl.sourceforge.net/project/openofficeorg.mirror/localized/zh-CN/3.4.1/Apache_OpenOffice_incubating_3.4.1_Linux_x86-64_install-rpm_zh-CN.tar.gz

下载文件。

2:下载完成后解压

tar xfApache_OpenOffice_incubating_3.4.1_Linux_x86-64_install-rpm_zh-CN.tar.gz

[root~]# tar xfApache_OpenOffice_incubating_3.4.1_Linux_x86-64_install-rpm_zh-CN.tar.gz

3.安装软件

[root~]# cd zh-CN/

[root~]# cd RPMS

安装所有的rpm

[root~]# yum localinstall *.rpm   //注意,请用  yum localinstall 而不是 yum install

然后再安装desktop-integration下的openoffice.org3.4-redhat-menus-3.4-9593.noarch.rpm

注意可能需要重新安下openoffice.org-ure-3.4.1-9593.x86_64.rpm 这个rpm 在RPMS目录下

4.启动服务

进入安装目录/opt/openoffice.org3/program

执行命令:soffice-headless -accept="socket,host=127.0.0.1,port=8100;urp;"-nofirststartwizard &

安装如果报错: javaldx: Could not find a Java Runtime Environment!

    安装:  yum install java-1.7.0-openjdk

可能遇到的问题1

[program~]$ soffice -headless-accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard&

[1] 3094

[program~]$
/opt/openoffice.org3/program/soffice.bin: error while loading
sharedlibraries: libuno_sal.so.3: cannot open shared object file: No
such file ordirectory

[1]+  Exit 127                soffice -headless-accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard

解决方法

重新装openoffice.org-ure-3.4.1-9593.x86_64.rpm

进入RPMS 目录

[program~]$ sudorpm -ivh openoffice.org-ure-3.4.1-9593.x86_64.rpm

Preparing...               ########################################### [100%]

1:openoffice.org-ure     ###########################################[100%]

然后重新进入

[keylogic@AY1303191548348936fe RPMS]$ cd/opt/ openoffice.org3/program/

可能遇到的问题2

Openoffice启动是要java支持的,所有系统要先安装java

第二步:安装swf

如果机器没有安装gcc

安装gcc

====================================

在阿里云安装gcc

[root~]# yum install gcc

遇到类似以下的错误

Error: Package:glibc-headers-2.12-1.80.el6_3.6.x86_64 (updates)

Requires: kernel-headers >= 2.2.1

Error: Package:glibc-headers-2.12-1.80.el6_3.6.x86_64 (updates)

Requires: kernel-headers

解决办法:

注释掉/etc/yum.conf中的

exclude=kernel*

这一行

=======================================

解决在CentOS5.5 64bit 下编译安装失败需要先安装如下软件。

#  yum -y install giflib-devel libjpeg-develfreetype-devel t1lib-devel zlib

第一步:下载源文件

http://www.swftools.org/swftools-2013-04-09-1007.tar.gz

# tar xfswftools-2013-04-09-1007.tar.gz

# cdswftools-2013-04-09-1007

# ./configure

# make

# make install

遇到的问题

这个可能是 缺少gcc或者g++

[root~]# yum install gcc-c++

还可能有依赖包

yum-y install giflib-devel libjpeg-devel freetype-devel t1lib-devel zlib

还可能遇到的问题

modules/.././types.h:39:2: 错误:#error "no way to define 64 bit integer"
modules/.././types.h:42:2: 错误:#error "don't know how to define 32 bit integer"
modules/.././types.h:45:2: 错误:#error "don't know how to define 16 bit integer"
modules/.././types.h:48:2: 错误:#error "don't know how to define 8 bit integer"

解决方法:

[root~]# ldconfig /usr/local/lib

然后再执行

[root~]# ldconfig /usr/local/lib

[root~]# ./configure

解决字体问题

swftools 对中文乱码问题

需要把windows的字体复制到linux上。

字体位置:C:\Windows\Fonts

把字体文件打包传到服务器上。

============网上参考别人的东西 开始==============

# mkdir /usr/share/fonts/win

# chmod 644/usr/share/fonts/win/*将以上字体文件复制到/usr/share/fonts/win目录下执行

# mkfontscale

#mkfontdir      # mkfont命令是生成win目录下所包含的字体的索引信息

#fc-cache                    #fc-cache命令更新字体缓存

# fc-cache -f –v

然后运行reboot 重启系统。字体美化就OK了!

============网上参考别人的东西 结束==============

以下是我的执行步骤

1:把 C:\Windows\Fonts 下的所有文件包。

2:把打包的fonts.zip 传到 /usr/share/fonts/

3:解压fonts.zip

4:进入这个目录执行 mkfontscale   mkfontdir       c-cache      fc-cache -f –v

5:重新启动系统。

可能遇到的问题

没有mkfontscale 命令

解决方法

[]$sudo yum install mkfontscale

中文无法显示问题

jodconverter 转换不了中文

将Windows下的字体C:\Windows\Fonts\simsun.ttc 还有simhei.ttf黑体 拷贝到 openoffice 目录:eg: /usr/lib/openoffice.org1.9.104/share/fonts/truetype/simsun.ttc

安装xpdf语言包,解决中文无法显示问题

对于未安装xpdf的用户

pdf2swf在将pdf文件转换成swf文件时,如果pdf中有中文,那么pdf2swf就可能处理不了,这时就需要在pdf2swf生成时添加xpdf支持,接下来我们就来看看如何安装xpdf。
首先到xpdf网站:http://foolabs.com/xpdf/download.html上下载xpdf-chinese-simplified.tar.gz文件(ftp://ftp.foolabs.com/pub/xpdf/xpdf-chinese-simplified.tar.gz),windows与linux皆适用,下载下来后,解压到某一特定目录,然后将本文附件当中名为stsong.tar.gz文件下载下来,解压后将其中的STSONG.TTF字体文件放在xpdf-chinese-simplified所在目录下的CMap目录下,然后打开xpdf-chinese-simplified所在目录下add-to-xpdfrc文件,源文件内容如下:

#----- begin Chinese Simplified support package (2011-sep-02)
cidToUnicode    Adobe-GB1   /usr/local/share/xpdf/chinese-simplified/Adobe-GB1.cidToUnicode
unicodeMap  ISO-2022-CN /usr/local/share/xpdf/chinese-simplified/ISO-2022-CN.unicodeMap
unicodeMap  EUC-CN      /usr/local/share/xpdf/chinese-simplified/EUC-CN.unicodeMap
unicodeMap  GBK     /usr/local/share/xpdf/chinese-simplified/GBK.unicodeMap
cMapDir     Adobe-GB1   /usr/local/share/xpdf/chinese-simplified/CMap
toUnicodeDir            /usr/local/share/xpdf/chinese-simplified/CMap
#fontFileCC Adobe-GB1   /usr/..../gkai00mp.ttf
#----- end Chinese Simplified support package

从原文件中可以看到,其中关于字体路径信息是基于linux的,所以如果要根据你的xpdf-chinese-simplified目录实际存放位置进行修改,

  • 如linux下修改后的内容为:

    #----- begin Chinese Simplified support package (2011-sep-02)
    cidToUnicode    Adobe-GB1   /usr/local/share/xpdf/chinese-simplified/Adobe-GB1.cidToUnicode
    unicodeMap  ISO-2022-CN /usr/local/share/xpdf/chinese-simplified/ISO-2022-CN.unicodeMap
    unicodeMap  EUC-CN      /usr/local/share/xpdf/chinese-simplified/EUC-CN.unicodeMap
    unicodeMap  GBK     /usr/local/share/xpdf/chinese-simplified/GBK.unicodeMap
    cMapDir     Adobe-GB1   /usr/local/share/xpdf/chinese-simplified/CMap
    toUnicodeDir            /usr/local/share/xpdf/chinese-simplified/CMap
    displayCIDFontTT    Adobe-GB1   /usr/share/xpdf-chinese-simplified/CMap/STSONG.TTF
    #fontFileCC Adobe-GB1   /usr/..../gkai00mp.ttf
    #----- end Chinese Simplified support package

    可以看到这里除了修改标准信息名,还添加了名为displayCIDFontTT的了行信息,在该行信息中,我们指定了之前下载的STSONG.TTF文件的位置。

  • 如果系统为windows,那么修改后的内容可能是下面的样子:

    #----- begin Chinese Simplified support package (2011-sep-02)
    cidToUnicode    Adobe-GB1   D:/xpdf-chinese-simplified/Adobe-GB1.cidToUnicode
    unicodeMap  ISO-2022-CN D:/xpdf-chinese-simplified/ISO-2022-CN.unicodeMap
    unicodeMap  EUC-CN      D:/xpdf-chinese-simplified/EUC-CN.unicodeMap
    unicodeMap  GBK     D:/xpdf-chinese-simplified/GBK.unicodeMap
    cMapDir     Adobe-GB1   D:/xpdf-chinese-simplified/CMap
    toUnicodeDir            D:/xpdf-chinese-simplified/CMap
    displayCIDFontTT    Adobe-GB1   D:/xpdf-chinese-simplified/CMap/STSONG.TTF
    #fontFileCC Adobe-GB1   D:/xpdf-chinese-simplified/gkai00mp.ttf
    #----- end Chinese Simplified support package

    可以看到,该文件同样指定了STSONG.TTF文件位置信息。

对于已安装xpdf的用户

已配置过 epel 源的CentOS为例,可以通过如下命令直接安装xpdf

yum install xpdf

然后执行如下命令

ln -s /etc/xpdf/add-to-xpdfrc.chinese-simplified /usr/share/xpdf/chinese-simplified/add-to-xpdfrc

上传字体到/usr/share/fonts/default/truetype/stsong/STSONG.TTF

修改/usr/share/xpdf/chinese-simplified/add-to-xpdfrc文件

#----- begin Chinese Simplified support package (2004-jul-27)
cidToUnicode    Adobe-GB1       /usr/share/xpdf/chinese-simplified/Adobe-GB1.cidToUnicode
unicodeMap      ISO-2022-CN     /usr/share/xpdf/chinese-simplified/ISO-2022-CN.unicodeMap
unicodeMap      EUC-CN          /usr/share/xpdf/chinese-simplified/EUC-CN.unicodeMap
unicodeMap      GBK             /usr/share/xpdf/chinese-simplified/GBK.unicodeMap
cMapDir         Adobe-GB1       /usr/share/xpdf/chinese-simplified/CMap
toUnicodeDir                    /usr/share/xpdf/chinese-simplified/CMap
#displayCIDFontTT       Adobe-GB1       /usr/..../gkai00mp.ttf
displayCIDFontTT        Adobe-GB1       /usr/share/fonts/default/truetype/stsong/STSONG.TTF
#----- end Chinese Simplified support package

上传xpdf-chinese-simplified.tar.gz压缩包的CMap目录到/usr/share/xpdf/chinese-simplified
即可。

使用命令

pdf2swf -s languagedir=/usr/local/xpdf-chinese-simplified -T 9 -s poly2bitmap -s zoom=150 -s flashversion=9 "/opt/123.pdf" -o "/opt/test/%.swf"

php 实现百度文库搭建的更多相关文章

  1. 百度文库下载器 V2.3.4.3 支持豆丁百度文库道客巴巴

    支持豆丁百度文库道客巴巴免下载劵财富值导出word 下载地址: http://pan.baidu.com/s/1qYCmQde

  2. 在线预览Office文件【效果类似百度文库】

    引言 结合上个项目和目前做的这个项目,其中都用到了Office文件在线预览,目前项目中是用到公司购买的Ntko控件,该控件每次浏览文件时则会提示安装信任插件,很繁琐,而且浏览效果不好. 提到Offic ...

  3. Silverlight类百度文库在线文档阅读器

    百度文库阅读器是基于Flash的,用Silverlight其实也可以做. 我实现的在线阅读器可以应用于内网文档发布,在线阅览审批等.没有过多的堆积功能,专注于核心功能.主要有以下特性: 1. 基于XP ...

  4. Java+FlexPaper+swfTools仿百度文库文档在线预览系统设计与实现

    笔者最近在给客户开发文档管理系统时,客户要求上传到管理系统的文档(包括ppt,word,excel,txt)只能预览不允许下载.笔者想到了百度文库和豆丁网,百度文库和豆丁网的在线预览都是利用flash ...

  5. 在线预览Office文件【效果类似百度文库】(转载)

    转载地址:http://www.cnblogs.com/sword-successful/p/4031823.html 引言 结合上个项目和目前做的这个项目,其中都用到了Office文件在线预览,目前 ...

  6. java开发_模仿百度文库_OpenOffice2PDF_注意事项

    在模仿百度文库的操作过程中,有很多朋友反映出来的一些问题,是我想起了写这篇blog. 主要是让大家在做的过程中注意一些东西,否则达不到想要的效果. 第一步:我们先从 java开发_模仿百度文库_Ope ...

  7. php大力力 [009节]php在百度文库的几个基础教程

    2015-08-23 php大力力009. php在百度文库的几个基础教程 php大力力 [009节]php在百度文库的几个基础教程 PHP脚本中操作MySQL数据库3-猿代码平台 php基础教程-绝 ...

  8. php大力力 [001节]2015-08-21.php在百度文库的几个基础教程新手上路日记 大力力php 大力同学 2015-08-21 15:28

    php大力力 [001节]2015-08-21.php在百度文库的几个基础教程新手上路日记 大力力php 大力同学 2015-08-21 15:28 话说,嗯嗯,就是我自己说,做事认真要用表格,学习技 ...

  9. 利用FlashPaper实现类似百度文库功能

    最近需要实现一个类似百度文库的功能,在Google上淘了一段时间,发现FlashPaper还算能够不错的实现此需求. 首先讲下思路: 1>安装FlashPaper: 2>利用java代码将 ...

随机推荐

  1. Delphi XE4 Upate1 更新升级记录.

    一直没时间,这两天折腾了一下 升级了.  其实也可能修了老bug 引入新bug. 呵呵. 看看Emb 都修了什么吧.  我干脆是重新安装的. 虽然官方也有一个单独的update.exe.  从这些bu ...

  2. Git 下载、安装与SSH配置

    一.Git学习笔记(基于Github) Git简介 Git是目前流行的分布式版本管理系统.它拥有两套版本库,本地库和远程库,在不进行合并和删除之类的操作时这两套版本库互不影响.也因此其近乎所有的操作都 ...

  3. Spring中的c3p0配置

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/51162560 今天,我们就来详细谈谈Spring中的c3p0配置问题,好了,不耽搁 ...

  4. Object.prototype.hasOwnProperty()

    hasOwnProperty() 方法会返回一个布尔值,指示对象是否具有指定的属性作为自身(不继承)属性. 语法 obj.hasOwnProperty(prop) 参数 prop 要检测的属性  字符 ...

  5. [WPF]控件应用多个样式(转)

    最近在做WPF项目,公司没有专门的UI工程师,什么都要自己做.接触WPF已经有好几年了,自定义样式什么的也可以做一些.WPF在使用样式的时候一般都是 Style="{StaticResour ...

  6. Python 代码使用pdb调试技巧

    Debug 对于任何开发人员都是一项非常重要的技能,它能够帮助我们准确的定位错误,发现程序中的 bug.python 提供了一系列 debug 的工具和包,可供我们选择.本文将主要阐述如何利用 pyt ...

  7. Oracle中exp,imp(导入导出)数据迁移注意事项

    这几天做开发库schema备份,出现些问题,记录一下.一,exp时,os语言环境和数据库不同时会自动发生转换.   如果操作系统的字符集小于数据库字符集,就可能出现乱码现象.imp时,同理,也是有可能 ...

  8. 谷歌设置支持webgl

    浏览器报错: could not initialize WebGl 因为谷歌默认不支持WebGl 在浏览器器中输入 about:flags 然后开启:覆盖软件渲染列表,覆盖内置的软件渲染列表,并对不支 ...

  9. 项目中使用的图片上传方法,base64存本地

    //生成健康报告 public function uploadJkbg(Request $r) { $data = $r->all(); $jkbg['jkbg_ctime'] = time() ...

  10. C# byte数组转成Bitmap对象

    方法一: /// <summary> /// 将数组转换成彩色图片 /// </summary> /// <param name="rawValues" ...