`

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 ”参数。


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

相关推荐

    (word完整版)FLASH动画的C语言算法演示.doc

    总之,"(word完整版)FLASH动画的C语言算法演示.doc"提供了一种新颖的教学模式,通过将C语言的算法与多媒体技术相结合,使得抽象的编程概念变得可视化,从而提升学生的学习体验和效果。这种结合理论与实践的方法对...

    flash个人简历模板

    2. "resume.doc":这是传统的Word文档格式的简历备份,确保不能查看Flash的招聘者也能获取基本信息。 3. "intro_me.html":这可能是一个HTML页面,作为Flash简历的介绍或预览,可能包含简单的介绍文字和进入Flash...

    Word模板-轴线简历.doc

    例如,创建交互式PS模拟练习系统,利用Flash技术和数据库记录用户操作,既展现了技术应用能力,也证明了对Photoshop软件的深入理解和教学潜力。 最后,教育背景部分列出求职者的学历,如武汉大学计算机科学技术专业...

    java生成FLASH图表

    Java生成Flash图表是一种技术,它允许开发者在Java应用程序中创建交互式的、动态的图表,这些图表通常以Adobe Flash格式呈现。这种技术对于数据可视化非常有用,尤其在网页应用中,可以提供丰富的图形体验。以下是对...

    Flash小学语文课件的设计与制作探究.doc

    1. 整体构思:以故事的主角乌龟和兔子展开,通过六幕剧情展现故事,强调坚持不懈和不骄不躁的主题。 2. 场景构建:动画中的每个场景都是精心设计的,如阳光明媚的早晨、起跑线、草原、森林等,为故事提供丰富的背景...

    FLASH课程设计.doc

    - 软件:Flash CS5用于动画制作,Word 2010用于撰写课程设计报告。 - 硬件:个人计算机(PC)作为主要开发平台。 **进度安排:** 1. 收集素材和准备资料。 2. 使用Flash CS5进行游戏制作。 3. 编写课程设计实验报告...

    FLASHAS3.0官网教程实例(下).rar

    10. **WordSearch**:单词搜索游戏实例,开发者可以从中学习到如何实现游戏逻辑、事件处理和用户交互设计。 通过这些实例,不仅可以学习到AS3.0的基础语法,还能掌握到如何将这些知识应用于实际项目中。每个实例都...

    Word模板-蓝色简约风求职简历.docx

    充分的准备工作包括了解行业、公司和岗位的具体信息,以便在面试中展现出对职位的深入了解和热情。 总的来说,这个Word模板提供了一个全面展示个人教育背景、实践经验、技能证书和个人特质的框架,有助于求职者构建...

    第2章 Flash卡通剧本策划.docx

    Flash卡通剧本策划是创作高质量Flash动画的关键步骤,它关乎到作品的整体结构和故事情节的连贯性。...因此,创作者必须重视剧本的创作,投入时间和精力去打磨,以确保作品的内涵和情感传递得以充分展现。

    Flash动画中传统美德民族文化论文.doc

    本文探讨了Flash动画如何在发展中融入并展现中国的传统美德与民族文化。在当前全球化背景下,中国面临着民族文化与传统美德传承的挑战。随着外来文化的涌入,特别是日韩文化的流行,许多年轻人对本土文化的关注减少...

    Word模板-通用求职个人简历设计师求职.docx

    【爱好】在简历中提及个人爱好,如186 025 11118(可能是一个电话号码),可以展现个人兴趣和生活态度,有时也能反映出潜在的技能或特质,比如对数字敏感或有良好的组织能力。 【联系方式】myemail@docar.com可能是...

    优秀个人简历模板系列-新增WORD个人简历—亮亮图文 (80).docx

    本模板名为“优秀个人简历模板系列-新增WORD个人简历—亮亮图文 (80).docx”,由亮亮图文设计,旨在帮助求职者制作出专业且具有吸引力的简历。 在模板中,个人信息部分清晰列出,包括联系方式、社交媒体账号(如...

    门户网站设计方案(word)

    - 设计时可考虑将网址、中文标识和辅助图形相结合,辅助图形有助于展现网站风格,而网址和中文标识应清晰易读。 - 可定制一套独特的字体,但应接近常见字体,方便在子栏目中应用。 3. **视觉流程**: - 用户的...

    (word版)软件工程师求职信.pdf

    1. **专业技能**:求职信中提到的技能包括C语言、汇编语言、编译原理、PowerBuilder、数据库原理、C++、C++V、Windows编程、Delphi编程、ASP动态网页、Flash动画、Java、离散结构、数据结构与算法分析、软件工程、...

    20xx年特级教师年终述职报告(word).docx

    4. 教育技术的应用:特级教师积极采用信息技术,如Flash制作课件,建立化学网站和博客,以扩展教学资源,增强教学互动。这显示了信息技术在教育中的重要角色,特别是在培养适应信息化社会的学生方面。 5. 职业道德...

    (完整word版)基于单片机的万年历设计.docx

    \n\nSTC89C52是一款高效能的8位微控制器,其特点包括8KB的Flash存储器、512B的数据存储空间和4KB的EEPROM。这款单片机的工作电压可从5.5V到3.3V,并能在0至40MHz的频率下工作,相当于普通8051的0至80MHz。此外,它还...

    VC SuperReport

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

    外研版一起小学英语五上《Module 3Unit 1 Today is Halloween》word教案 (5).docx

    2. 过程与方法:利用计算机和网络教学,使抽象的西方文化以生动的形式展现,通过自主学习和探索,突出教学重点,突破难点,提高学习效率。 3. 情感、态度与价值观:让学生感受到网络世界的魅力,培养他们寻找和处理...

    报表打印预览_VC

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

Global site tag (gtag.js) - Google Analytics