`

flash 展现word

阅读更多

上传pdf,word,ppt文档转化为在线阅读的flash文档 [复制链接]

   
 
 
 
【一】一个朋友提出的需求, 想让我帮忙看看,所以自己就简单分析了下, 就是实现类似豆丁和百度文库的功能, 问了下 laruence ,讨论了下 大概有了个思路,方案是:
1 pdf在linux下有命令行的工具可以转化为flash
2 word ,ppt 通过openoffice的服务模式可以在命令行下转化为pdf , 再使用步骤1 就可以了,这里有一个文档介绍:  
http://www.artofsolving.com/opensource/pyodconverter
这样, 可以写一个脚本程序来串联整个流程(如果做成工具的话,就不能再图形界面环境下实现这个)。
里面比较麻烦的是word ,ppt to pdf的步骤,我简单在我的vps上尝试一下:
  1. sudo yum install
  2. python-openoffice.noarch openoffice.org-writer.x86_64
  3. openoffice.org-langpack-zh_CN.x86_64  openoffice.org-pyuno
  4. openoffice.org-impress.x86_64
复制代码
运行 soffice -accept=”socket,port=8100;urp;” 输出:
  1. javaldx: Could not find a Java Runtime Environment!

  2. /usr/lib64/openoffice.org3/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
复制代码
所以要做两件事情, 1 建立java运行时环境 2 处理display问题
首先下载并安装最新的jdk :
https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewFilteredProducts-SingleVariationTypeFilter;pgid=yYdgaHqkkjVSR0EUPIQsoQ3D0000U2mCVFtF;sid=4k13hkOCk7F3hw–tOL-eFMsxz6zu5DCPg6VLoVcx7E7hi12yJM=?DLWidget=true&AutoWidgetDL=&ADWOptLoginReg=fromLogin
第二个问题的解决方案 ,发现了这个帖子:
http://www.linuxforums.org/forum/linux-desktop-x-windows/1633-use-dummy-display.html
思路是使用Xvfb来没有显示设备的情况下在内存虚拟一个framebuffer 。
  1. [rainx@vps ~][code][rainx@vps ~][code][rainx@vps ~][        DISCUZ_CODE_7        ]nbsp; sudo yum install xorg-x11-server-Xvfb
复制代码
nbsp; sudo yum install xorg-x11-server-Xvfb[/code]nbsp; sudo yum install xorg-x11-server-Xvfb[/code]运行之:[rainx@vps ~]$  sudo Xvfb :1 -screen 0 800x600x16
再次运行 soffice :
  1. sudo soffice -accept=”socket,port=8100;urp;” -display :0
复制代码
PS: 之后又找到一个哥们用类似的方式搞vmware的 :http://www.ixpub.net/thread-2264906-1-1.html
进行转换 :
  1. [rainx@vps ~]$ python DocumentConverter.py who.docx who.pdf
  2. [rainx@vps ~]$ ls -l who.*

  3. -rw-r–r– 1 rainx rainx  51823 Jul 13 20:54 who.docx

  4. -rw-r–r– 1 root  root  690854 Jul 13 20:55 who.pdf
复制代码
who.pdf  就是转换好的文档了, 可以看到转换后的文件还是很大的,不过用阅读器看下,效果还可以..
Ok, 先到这里,后面继续搞pdf 转换为flash文件的部分

原文:http://rainx.cn/blog/archives/140
<script type="text/javascript"></script>
 

 

 

 

<script type="text/javascript"></script>
   
 
 
 

上传pdf,word,ppt文档转化为在线阅读的flash文档【二】

这步比较简单,主要是应用 swftools 里的 pdf2swf工具,
下载swftools 可以从这里: http://www.swftools.org/download.html
下载编译之:
  1. wget http://www.swftools.org/swftools-0.9.1.tar.gz

  2. tar xvzf swftools-0.9.1.tar.gz

  3. cd swftools-0.9.1

  4. ./configure

  5. make
复制代码


这个时候,遇到报错
  1. jpeg.c:463: error: conflicting types for ‘jpeg_load_from_mem’

  2. jpeg.h:15: error: previous declaration of ‘jpeg_load_from_mem’ was here

  3. make[1]: *** [jpeg.o] Error 1
复制代码


原来是函数的定义和头文件的声明有点冲突,解决方式比较简单,修改 jpeg.c 的 463行:
改为:
  1. int jpeg_load_from_mem(unsigned char*_data, int _size, unsigned char**dest, int*width, int*height)
复制代码
继续即可,
然后又遇到问题:
  1. gcc -DHAVE_CONFIG_H swfrender.o -o swfrender ../lib/libgfxswf.a ../lib/librfxswf.a ../lib/libgfx.a ../lib/libbase.a -L/usr/local/lib -lz -lm

  2. ../lib/libgfx.a(gfxfont.o): In function gfxfont_free‘:

  3. gfxfont.c:(.text+0x7c0): undefined reference to glyph_clear’
复制代码


解决方法 :
sudo yum install freetype-devel

再继续(需要重新./configure )
在 sudo make install 就可以了
我了个擦,发现没编译pdf2swf,仔细看下./configure提示信息:
  1. * The following headers/libraries are missing:  jpeglib ungif jpeglib.h gif_lib.h

  2. * Disabling pdf2swf tool…
复制代码


所以先安装上述的库,再重新编译 : sudo yum install libjpeg-devel
试一下 :
pdf2swf who.pdf -o who.swf

关于乱码问题,可以参考这个链接: http://www.javaeye.com/topic/538361
这样的swf文件有一个问题, 是自动播放的,我们无法对其进行控制,这显然不是我们期望的,所以我们可以通过 -b 来附加一个默认的阅读器, 加上-T9 强制版本为v9(据说可以避免一些单页的pdf显示问题)
  1. pdf2swf -T9 -b who.pdf -o who.swf
复制代码


到这里,生成过程就差不多了,不过显然这个viewer还需要美化,这个我们后面再继续研究
...
 

 

<script type="text/javascript"></script>
   
 
 
 

上传 pdf,word,ppt文档转化为在线阅读的flash文档【三】

经过前两个步骤后,我们最后只需要一个阅读器来对生成的swf文件进行展示就行了, pdf2swf 默认生产的那个viewer显然有点难看,需要美化一下, 这里可以找到一个开源的项目 cfviewer进行处理,  可以从 github上找到这个项目:
http://github.com/ktarou/cfviewer
和之前合并阅读器的方式不同的是,这个阅读器是和数据文件分离的,所以这样pdf2swf输出的时候也不必将阅读器合并输出到swf生成的swf文件里
  1. pdf2swf -T9 -s insertstop who.pdf -o who.swf
复制代码


即可,
由于这个项目是基于maven管理的,所以编译需要配置maven环境, 并且用到了 flexmojos 插件, 编译的方式是在主目录,
  1. mvn flexmojos:compile-swf
复制代码


即可
具体引用的方式可以在它的example目录下找到,如果觉得这个阅读器的样式不太满意,可以直接修改这个src/main/flex/Main.mxml文件进行调整..
Update: 之前步骤1的时候如果编译出现问题,可以尝试安装如下的包:
sudo yum install zlib-devel libjpeg-devel giflib-devel freetype-devel

                                        
          
                                
 
 

<script type="text/javascript"></script>

   
 
 
利用pdf2swf将PDF转换成SWF
通过代码将PDF转换成SWF来说,现在比较常用的一种方式就是利用SWFTools工具中的pdf2swf(http://www.swftools.org/)。这个工具还是比较好用的。转换成的SWF文件质量也不错。

  1. /** * PDF转SWF工具
  2. * @author tangs
  3. *
  4. */
  5. public class Converter {
  6.     public static int convertPDF2SWF(String sourcePath, String destPath, String fileName) throws IOException {
  7.         //目标路径不存在则建立目标路径
  8.         File dest = new File(destPath);
  9.         if (!dest.exists()) dest.mkdirs();
  10.         
  11.         //源文件不存在则返回
  12.         File source = new File(sourcePath);
  13.         if (!source.exists()) return 0;
  14.         
  15.         //调用pdf2swf命令进行转换
  16.         String command = "D:\\Program Files\\SWFTools\\pdf2swf.exe" + " -o \"" + destPath + "\\" + fileName + "\"  <span style="color: #ff0000;">-s languagedir=D:\\xpdf\\xpdf-chinese-simplified</span> -s flashversion=9 \"" + sourcePath + "\"";
  17.         
  18.         Process pro = Runtime.getRuntime().exec(command);
  19.         
  20.         BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(pro.getInputStream()));
  21.         while (bufferedReader.readLine() != null);
  22.         
  23.         try {
  24.             pro.waitFor();
  25.         } catch (InterruptedException e) {
  26.             // TODO Auto-generated catch block
  27.             e.printStackTrace();
  28.         }
  29.         
  30.         return pro.exitValue();
  31.         
  32.     }
  33.    
  34.     public static void main(String []args) throws IOException {
  35.         String sourcePath = "c:\\test.pdf";
  36.         String destPath = "c:\\";
  37.         String fileName = "test.swf";
  38.         Converter.convertPDF2SWF(sourcePath, destPath, fileName);
  39.     }
  40. }
复制代码

就这么简单的几行代码就可以了。但是在程序中遇到中文就会出现意想不到的情况,这个也不例外。在转换中,我发现有些中文PDF文件转换后会出现乱码的现象,因此这里还要处理一下乱码的问题。看到上面代码中红色的一段了吗?这就是解决乱码的方法。这个方法是参考了http://hi.baidu.com/xwx520/blog/item/1d0c423885b392fab311c72e.html这篇文章,感谢作者。

1.下载XPDF:ftp://ftp.foolabs.com/pub/xpdf/xpdf-chinese-simplified.tar.gz,并解压到xpdf-chinese-simplified目录下。


2.下载字体:http://blog.pjoke.com/wp-content/uploads/2009/02/font.zip,并解压到xpdf-chinese-simplified/CMap目录下。


3.修改xpdf-chinese-simplified目录下的add-to-xpdfrc文件。将里面的路径设为自己的路径:
00.jpg

4.参照上面的代码,在调用pdf2swf命令中加入“ -s languagedir=D:\\xpdf\\xpdf-chinese-simplified ”参数。


这样乱码的问题就解决了。
分享到:
评论

相关推荐

    VC SuperReport

    4、可以支持图片、动画甚至是音乐和Flash 5、支持报表打印、预览、查找、保存、更新和页面设置等功能 如问题可以给我发mail,我的信箱:zhang_zkun@cvicse.com &lt;br&gt;&lt;br&gt;&lt;br&gt;注:使用word编辑报表模版时,请保存...

    报表打印预览_VC

    1、数据和格式完全分开,格式可以通过WORD的强大功能来完成,程序来要做就是把数据嵌入进去。 2、能够完成各类复杂报表的展现,包括规则的和不规则的报表,固定的和不固定报表。 3、可以支持图片、动画甚至是...

    SuperReport

    2、数据和格式完全分开,格式可以自动生成或者通过WORD的强大功能来完成。 2、能够完成各类复杂报表的展现,包括规则的和不规则的报表,固定的和不固定报表。 3、可以支持图片、动画甚至是音乐和Flash 4、支持报表...

    VC++ SuperReport

    2、数据和格式完全分开,格式可以自动生成或者通过WORD的强大功能来完成。 3、能够完成各类复杂报表的展现,包括规则的和不规则的报表,固定的和不固定报表。 4、可以支持图片、动画甚至是音乐和Flash 5、支持报表...

    信息技术伴我行.pptx

    Word 光影魔术手 PowerPoint Flash 编辑文字 设置格式 绘制表格 图文混排...... 剪裁图片 修改大小 调整亮度 装饰边框..... 调整布局 插入图片 设置背景 插入动画...... 绘制图形 逐帧动画 渐变动画 引导动画.........

    site2U网站管理系统 v1.0 Beta 大众版.rar

    一种可以综合管理网站应用上各种栏目的通用工具,新闻、产品、文档、下载、编辑、用户、论坛……,借助通用模板技术和独创的infoInsert技术,这些不同形式的...- 多种提示方式,将不好理解的选项用直观可视化的方式展现

    视展多媒体信息发布系统 v3.5.rar

    PPT、word/excel文档、RSS实时新闻、flash动画、动态网页等,支持在视频窗口上面添加动态FLASH的 LOGO。  支持与其它系统数据对接如:一卡通、门禁、排队叫号、触摸查询等;并支持电脑桌面实时 截取...

    site2U网站管理系统

    类别:php源码-&gt;cms 下载地址:http://www.site2u.cn/site2u1.0beta.rar&lt;br/&gt;官方网址:http://www.site2u.cn&lt;br/&gt;平台:Linux, FreeBSD, ... - 多种提示方式,将不好理解的选项用直观可视化的方式展现

    site2U网站管理系统 v1.1.rar

    - 与Windows,WORD等流行软件的操作模式、界面、惯例尽量保持一致,容易上手。 - 多种提示方式,将不好理解的选项用直观可视化的方式展现 ============================================================ 1.1新增...

    世纪星8.0+开发功能

    影音播放 格式多样 世纪星8.0多媒体控件兼容数款影音软件,MP3、WMA、DAT、WAV、AVI 、MOV 、MMM、RMI、MPEG……同时添加Flash播放控件,打造丰富、多彩、生动的组态画面。 控件文本提示功能 全面升级 旧版世纪星...

Global site tag (gtag.js) - Google Analytics