设为首页 收藏本站
查看: 1416|回复: 0

[经验分享] php文库系统解决方案

[复制链接]

尚未签到

发表于 2018-12-21 09:52:51 | 显示全部楼层 |阅读模式
  php文库系统解决方案(仿百度、豆丁文库系统)

  方案一:
  第一步:下载文库核心插件
  (FlexPaper+SWFTools 实现仿百度文库pdf->swf->界面显示);
  下载地址:http://down.运维网.com/data/564004(PHP仿百度文库核心代码)
  SWFTools官方下载地址:
  http://www.swftools.org/download.html
  1、界面显示.swf

  2、pdf转换成.swf配置
  flexpaper\php\lib\config.ini.win.php

  path.pdf和path.swf分别建一个pdf存放路径和转换后.swf存放路径(即前台读取路径)
  安装好SWFTools,并配置好SWFTools安装完整路径,别填错了。
  2、pdf->swf转换页面地址:(打开页面,自己会转换成.swf并页面显示)
  flexpaper/php/simple_document.php

  第二步:解决上传文件转换为PDF问题

  PHP目前没有开源的文件转换为PDF的代码插件。
  OpenOffice是一套跨平台的办公室软件套件,能在 Windows、Linux、MacOS X (X11)、和 Solaris 等操作系统上执行。它与各个主要的办公室软件套件兼容。OpenOffice 是自由软件,任何人都可以免费下载、使用、及推广它。
  并且OpenOffice还提供了开源的Java调用API。(很遗憾没有PHP的调用API),所以下一步要做的工作就是实现PHP能调用java类,从而实现php调用OpenOffice来转换上传文件到pdf。
  OpenOffice官网下载地址:(因为调用它,当然服务器上也必须装上这个软件,而且要保持打开运行的状态)
  http://www.openoffice.org/download/
  本地下载:http://down.运维网.com/data/583479
  OpenOffice API下载地址:
  官网:http://www.openoffice.org/api/
  第三步:测试php调用java类
  1、配置
  下载:JavaBridge.jar http://down.运维网.com/data/560547
  下载:java.inc  http://down.运维网.com/data/564342
  将JavaBridge.jar放在C:\Program Files\PHP\ext中 然后双击打开:

  然后,将java.inc取名就叫java文件夹放在htdoc根目录中,然后建一个测试文件:

  运行test.php但是报错:





  总是提示java_require()不被支持。期待高手指教!
  结果路就被堵在了此处。最终此方案放弃。如果能够顺利php调用java方法,那么这个方案还是可行的。
  ==========================The End=================================================
  方案二:
  FlexPaper是一个开源的PDF文档在线查看控件。用户查看PDF文档不需要安装Acrobat Reader,但需要利用像SwfTools这样的工具预先将PDF文档转成SWF格式的文件。FlexPaper能够对需要查看的文档进行分页、搜索、打印、缩放、全屏查看等
  但对于一次性加载整个大型文档会导致加载时间过长和内存过渡消耗。 在新的FlexPaper版本中已经能够解决这个问题。首先需要将你的文档拆分成多份swf文件,然后在调用FlexPaper的时候设置好相关参数,这 样在浏览的时候就能够分页/分段加载。下面将介绍如何将文档拆分成多份swf文件和怎么设置FlexPaper参数:
  关于如何拆分文档,在FlexPaper  1.4.5中已经提供了一个开箱即用的示例。只要在支持PHP的服务器上运行其提供的'split_document.php'文件能够自动进行分页。对 于服务器上不支持PHP运行的,可以在调用PDF2SWF程序时,在原来调用的命令行基础上稍微修改一下具体如下:
C:\SWFTools\pdf2swf.exe Paper.pdf -o Paper%.swf -f -T 9 -t -s storeallcharacters
  
大家可以看到上面的命令行比原来只多了一个%符号,这个符号表示在PDF2SWF转换文档时,将为每一个页创建一个swf文件。如:"Paper1.swf", "Paper2.swf"。然后在FlexPaper控件配置加载SwfFile的地方,采用:{filename[*,padding],total pages}这种语法表明。
以下给出一个具体的配置示例:


  • var fp = new FlexPaperViewer(      
  • 'FlexPaperViewer',   
  • 'viewerPlaceHolder', { config : {   
  •           SwfFile : "{Paper[*,0].swf,28}",   
  •           Scale : 0.6,   
  •           ZoomTime : 0.5,   
  •           ZoomInterval : 0.1,   
  •           FitPageOnLoad : false,   
  •           FitWidthOnLoad : false,   
  •           PrintEnabled : false,   
  •           MinZoomSize : 0.2,   
  •           MaxZoomSize : 5,   
  •           localeChain : "en_US"   
  • }});   

  在这个例子中,我们指示FlexPaper按分页的方法来加载一个共有28页的文档,不需要用0填充文件名。假如你的文件是 按"Paper01.swf", "Paper02.swf", .. 这种形式拆分时,要将padding设置成1,意思是用一个零来填充文件名。
但是这种解决方法有点不足的地方就是拆分后的一个个swf文件大小加起来比较原来单个文档的大小多了很多。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-653892-1-1.html 上篇帖子: PHP(6) 控制结构 下篇帖子: php按比例裁剪图片
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表