今天在百度文库看文件时想着有没有可以在线看电子书的插件或源码呢?到网上搜索下发现了FlexPaper,下载下来,找了一些资料,折腾一番,出的效果还不错,就是将中文文档转换成swf文件时卡住了,先作个记录,以后有空再研究了。
FlexPaper 是 一个开源轻量级的在浏览器上显示各种文档的组件,被设计用来与PDF2SWF一起使用, 使在Flex中显示PDF成为可能,而这个过程并无需PDF软件环境的支持。它可以被当做Flex的库来使用.另外也可以通过将一些例如Word、PPT 等文档转成PDF,然后实现在线浏览。
目前FlexPaper 最新版是1.4.1,可以到官网 或Google Project 下载
解压后有一个FlexPaperViewer.html demo文件,和一个debug文件FlexPaperViewer_debug.html,这两个文件很好的展示了FlexPaper 的用法,以下搜集了FlexPaper 的一些参数和函数供大家参考,结合这些参数和函数很容易就可以应用FlexPaper
参数列表
参数名称 |
参数值及说明 |
CursorToolsVisible |
(True/False) |
FitPageOnLoad |
(True/False) |
FitWidthOnLoad |
(True/False) |
FullScreenAsMaxWindow |
(True/False) |
FullScreenVisible |
(True/False) |
NavToolsVisible |
(True/False) |
PrintEnabled |
(True/False) |
PrintToolsVisible |
(True/False) |
ProgressiveLoading |
(True/False) |
Scale |
|
SearchToolsVisible |
(True/False) |
StartAtPage |
|
SwfFile |
|
ViewModeToolsVisible |
(True/False) |
ZoomInterval |
|
ZoomTime |
|
ZoomToolsVisible |
(True/False) |
ZoomTransition |
事件与函数
函数名称 |
函数说明 |
gotoPage (Number pageNumber) |
跳转到指定页 |
fitWidth () |
设置为宽度模式视图 |
fitHeight () |
设置为高度模式视图 |
loadSwf (String swffile) |
加载一个新的 swf 文件到浏览器中 |
getCurrPage () |
获取当前页码 |
nextPage () |
跳转到下一页 |
prevPage () |
跳转到上一页 |
Zoom (Number factor) |
按系数缩放 |
searchText (String text) |
搜索文字 |
switchMode (String mode) |
变换视图模式 ; 参数值可为 ("Portrait", "Two Page", "Tile") |
printPaper () |
打印加载的文档 |
事件名称 |
事件说明 |
onDocumentLoaded () |
文档加载完成后触发 |
onDocumentLoadedError (String errorMessage) |
加载文档出错时候触发 |
onProgress (Number bytesloaded, Number bytestotal) |
文档正在加载的时候触发 |
onCurrentPageChanged (Number pagenumber) |
页面改变时触发 |
onExternalLinkClicked (String link) |
当用户点击外部链接的时候触发 |
将各种文档转换成swf文件是关键,从官网 和其它资料都是介绍用SwfTools 工具将pdf文件换成swf文件,在windows下可以使用以下命令行
- C:/SWFTools/pdf2swf.exe Paper.pdf -o Paper.swf -T 9 -f
将Paper.pdf 转换成Paper.swf,当然也可以用它的UI工具
但问题就来了,转换英文文档是可以的,但是中文就不行了会出现乱码,后来在网上找了一些方法,但折腾了一番没成功,以后有时间再研究,大家有兴趣可以参考以下的资料来研究下: 使用xpdf来处理中文PDF文档 。