仿百度文库解决方案(六)-pdf转换swf格式出现的乱码问题

           在上一篇的博客中介绍了如何通过flexpaper实现文档的在线预览。但是在测试的时候经常会出现许多预想不到的事情。例如在显示的时候发现pdf转换swf格式的文件出现了乱码的问题,在这里总结一下出现的问题。

        第一个 : 在网页上显示资源时无法显示。如图:

     

         分析原因 :

              出现这种情况分为三种情况。第一种情况是在播放官方的swf的文件,这样的情况的原因是没有得到官方的信任。在官方添加信任就好。具体操作如下:

             进入官网,网址如下:http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065

  FlexPaper添加信任.进入网页之后 ,点击左边的 Global Security Settings papel 这个选项,然后在右边(如下图)

 

           第二种情况 ; 可以加载官方的案例,可是无法加载自己的资源 

         当我们想要FlexPaper加载我们自己的swf时,发现一直处于等待状态,无法显示,检查swf的路径也没错,但就是一直无法加载。这种情况,很有可能就是.swf文件的版本问题啦。我们运行SWFTools的图形工具(gpdf2swf.exe)把pdf转换为swf,但是转换后的swf也不能被Flexpaper正常加载,如果你确保路径没错的话,那就是版本的问题啦。

我们可以查看转换时swf的版本,我们可以点击 Edit->Options->Viewer:

         

可以看到它帮我们转换为SWF的版本有 7,8两项,但这都是不能正常在FlexPaper中加载的,我们必须把pdf转换为版本为9swf,才能让它在Flexpaper中显示。那么如何转换为9的呢?我自己是使用cmd命令行工具来手工转换的.只须在命令行添加 "-s flashversion=9" 这句,就可以转换为9的版本啦.示例如下:

参数说明如下:

SWFTools我的默认安装路径是: E:\Program Files\

SWFToolspdf2swf.exe工具所在的文件夹,

-t源文件路径,即待转换的pdf文件路径。

-s设置参数,这里我们设置为 flashversion=9 ,即可以转换为的版本啦。

-o输出文件的路径,这里我输出到F:盘下

好了,这样就转换成功啦,你就可以得到一个.swf的文件,你只需拷到你下载的Demo里,配置好路径后,你就会发现FlexPaper可以正常加载你的swf.

在这里稍微强调一个小问题文件夹名字带有空格

对于 -t ,-o 这两个参数,就是对于源文件路径来输出文件路径的问题,如果你的文件夹的名字中,有空格的话,这样是不能找到你的文件的。

比如说:我要转换的pdf源文件在 E:\Program Files\SWFTools\这个文件夹下,当我这样写 -t E:\Program Files\SWFTools\ajax.pdf 或者是输出文件路径写成这样 - o E:\Program Files\SWFTools\ajax.swf  这样都是不能成功的,因为这里面有文件夹名含有空格,这应该是cmd命令的问题(这个我也不是很懂,希望有高手能说一下),这里你只有在路径的前后加上又引号就能成功啦,如: -t "E:\Program Files\SWFTools\ajax.pdf" 或  -o "E:\Program Files\SWFTools\ajax.swf" 这样就OK.

              第三种情况:  可以加载资源可是无法播放。分析思路

              第一:确定一下你传递的资源的后缀名是否正确,因为flexpaper 只能播放后缀名为swf的文件。

          第二: 查看文件的路径是否正确,如果在jsp页面中,必须查看传递的资源路径是否存在乱码。

          二 中文乱码的问题

            出现中文乱码的一般在txt格式转换成pdf格式的过程中还有就是在pdf转换成swf格式的时候出现。

            在这里先说第一种txt格式转换。在进行文本文档的转换时,进行一个中间过渡。可以先把txt转换成odt文件,之后转换成pdf格式就不会出现乱码。 具体的步骤在仿百度文库解决方案(三)- 利用JODConverter把文档转换成pdf格式

               在pdf转换swf格式的出现的乱码比较容易解决。只需要几个代码修改一下就好了具体步骤如下:

         

在转换中,我发现有些中文PDF文件转换后会出现乱码的现象,因此这里还要处理一下乱码的问题。看到上面代码中红色的一段了吗?这就是解决乱码的方法。这个方法是参考了http://hi.baidu.com/xwx520/blog/item/1d0c423885b392fab311c72e.html这篇文章,感谢作者。

1.下载XPDFftp://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文件。将里面的路径设为自己的路径:

 

4 之后在调用pdf2swf命令时后面加上“

  1. -s languagedir=D:\\xpdf-chinese-simplified";  

”就可以了。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老王学Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值