准备:swftools,flexpaper
基本思路:
1,将pdf文件转化成swf文件
2,使用flexpaper预览swf文件
主要代码:
1,在linux中安装swftools.官网下载swftools 安装包,解压
2,./configure --prefix=安装路径
make install
执行完之后,执行pdf2swf -help 如果显示。说明安装成功
如果执行pdf2swf -help 显示commond not find
的话,可能需要配置swftools的环境变量,具体配置请百度^_^
3.在java中调用linux shell 将pdf 转化成swf
String [] cmd={"/bin/sh","-c","pdf2swf "+要转化的文件路径/文件名称.pdf+" "+ 转化后的文件路径/文件名称.swf};Process pro = Runtime.getRuntime().exec(cmd);
dealWith(pro);
pro.waitFor();//等待子进程的结束,子进程就是系统调用文件转换这个新进程
dealWith()是个方法了,里面可以打印执行过程
private void dealWith(final Process pro){
// 下面是处理堵塞的情况
try {
new Thread(){
public void run(){
BufferedReader br1 = new BufferedReader(new InputStreamReader(pro.getInputStream()));
System.out.println("********************"+br1);
String text;
try {
while ( (text = br1.readLine()) != null) {
System.out.println("==================="+text);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
} catch (Exception e) {
e.printStackTrace();
}try {
new Thread(){
public void run(){
BufferedReader br2 = new BufferedReader(new InputStreamReader(pro.getErrorStream()));//这定不要忘记处理出理时产生的信息,不然会堵塞不前的
System.out.println("#########################"+br2);
String text;
try {
while( (text = br2.readLine()) != null){
System.err.println("------------------"+text);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
} catch (Exception e) {
e.printStackTrace();
}
}
4.jsp中,
引入flexpaper的class 和js
<link rel="stylesheet" type="text/css"
href="${ctx}/pages/flexPaper/css/flexpaper.css" />
<script src="${ctx}/pages/flexPaper/js/flexpaper.js"
charset="UTF-8"></script>
<script
src="${ctx}/pages/flexPaper/js/flexpaper_handlers.js"
charset="UTF-8"></script>
<div id="documentViewer" class="flexpaper_viewer"
style="width:770px;height:500px;"></div>
$(‘#documentViewer‘).FlexPaperViewer(
{ config : {
SWFFile : fileURL,
Scale : 0.6,
ZoomTransition : ‘easeOut‘,
ZoomTime : 0.5,
ZoomInterval : 0.2,
FitPageOnLoad : true,
FitWidthOnLoad : false,
FullScreenAsMaxWindow : false,
ProgressiveLoading : false,
MinZoomSize : 0.2,
MaxZoomSize : 5,
SearchMatchAll : false,
InitViewMode : ‘Portrait‘,
RenderingOrder : ‘flash‘,
StartAtPage : ‘‘,ViewModeToolsVisible : true,
ZoomToolsVisible : true,
NavToolsVisible : true,
CursorToolsVisible : true,
SearchToolsVisible : true,
WMode : ‘window‘,
localeChain: ‘en_US‘
}}
);
以上为主要实现代码。flexpaper的使用可以参考官方下载包,将官方下载包直接丢到tomcat中是可以运行的。
-------------------------------------------------------------------------------------------------------------------------------------------
先写这么多,再次感谢伟大的各界网友和IT同行,提供的各种资料给我与莫大的帮助。thank you!
linux在线预览pdf文件开发思路,布布扣,bubuko.com