在上一篇的博客中介绍了如何通过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转换为版本为9的swf,才能让它在Flexpaper中显示。那么如何转换为9的呢?我自己是使用cmd命令行工具来手工转换的.只须在命令行添加 "-s flashversion=9" 这句,就可以转换为9的版本啦.示例如下:
参数说明如下:
(SWFTools我的默认安装路径是: E:\Program Files\)
SWFTools:pdf2swf.exe工具所在的文件夹,
-t: 源文件路径,即待转换的pdf文件路径。
-s: 设置参数,这里我们设置为 flashversion=9 ,即可以转换为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.下载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文件。将里面的路径设为自己的路径:
4 之后在调用pdf2swf命令时后面加上“
- -s languagedir=D:\\xpdf-chinese-simplified";
”就可以了。