PDF在线阅读开发经验(FlexPaper+SWFTools+SaveAsPDFandXPS)【转】
1、使用SaveAs 注意: String cmd = “C:\\SWFTools\\pdf2swf ” + webfilepath + ” -o ” + webpath + ” -T 9″; 加 “-T 9” 参数,设置输出版本为flash9,解决PDF文件只有一页,生成的swf不能播放的问题。 另外,若PDF内表格元素过多,在转换时会抛出一堆异常错误。似乎还没有好的解决办法? 4、利用FlexPaper展示 FlexPaper是一个被设计用来与PDF2SWF一起使用,开源轻量级的在浏览器上显示各种文档的组件, 使在Flex中显示PDF成为可能,而这个过程并无需PDF软件环境的支持。它可以被当做Flex的库来使用。也可以通过将一些例如Word、PPT等文档转成PDF,然后实现在线浏览。;
31
????????????????????????
if
(StringUtil.executeCmdFlash(cmd) ==
false
) {
32
????????????????????????????
return
"error"
;
33
????????????????????????
}
34
????????????????????????
System.out.println(
"cmd::::::"
+ cmd);
35
????????????????????
}
36
?
?37
????????????????????
File f1 =
new
File(webpath);
38
????????????????????
if
(f1.exists()) {
39
????????????????????????
ajaxstr = DecodeUtil.Encrypt(wurl);
40
????????????????????
}
41
?
?42
????????????????
}
else
{
43
????????????????????
return
"error"
;
44
????????????????
}
45
????????????
}
catch
(Exception e) {
46
????????????????
Globals.Logger(
"发生错误:"
+ e,
2
);
47
????????????
}
48
?
?49
????????
}
01
//java调用cmd命令行方法
02
?
?03
/**
04
?????
* 运行可执行文件
05
?????
*
06
?????
* @param cmd
07
?????
* @return String
08
?????
*/
09
????
public
static
synchronized
boolean
executeCmdFlash(String cmd) {
10
?
?11
????????
try
{
12
????????????
final
Process process = Runtime.getRuntime().exec(cmd);
13
????????????
Runtime.getRuntime().addShutdownHook(
new
Thread() {
14
????????????????
public
void
run() {
15
????????????????????
process.destroy();
16
????????????????
}
17
????????????
});
18
????????????
InputStreamReader inputstreamreader =
new
InputStreamReader(process.getInputStream());
19
????????????
char
c = (
char
) inputstreamreader.read();
20
????????????
if
(c !=
'\uFFFF'
)
21
????????????????
stdout.append(c);
22
????????????
while
(c !=
'\uFFFF'
) {
23
????????????????
if
(!inputstreamreader.ready()) {
24
????????????????????
System.out.println(stdout);
25
????????????????????
try
{
26
????????????????????????
process.exitValue();
27
????????????????????????
break
;
28
????????????????????
}
29
????????????????????
catch
(IllegalThreadStateException _ex) {
30
????????????????????????
try
{
31
????????????????????????????
Thread.sleep(100L);
32
????????????????????????
}
33
????????????????????????
catch
(InterruptedException _ex2) {
34
????????????????????????
}
35
????????????????????
}
36
????????????????
}
else
{
37
????????????????????
c = (
char
) inputstreamreader.read();
38
????????????????????
stdout.append(c);
39
????????????????
}
40
????????????
}
41
????????????
try
{
42
????????????????
inputstreamreader.close();
43
????????????
}
44
????????????
catch
(IOException ioexception2) {
45
????????????????
System.err.println(
"RunCmd : Error closing InputStream "
+ ioexception2);
46
????????????????
return
false
;
47
????????????
}
48
????????
}
catch
(Throwable e) {
49
????????????
e.printStackTrace();
50
????????????
Globals.Logger(
"发生错误:"
+ e,
2
);
51
????????????
return
false
;
52
????????
}
53
?
?54
????????
return
true
;
55
????
}
01
SwfFile : escape(host+
"/upload/web/2010-05-24-10-21-51139.swf"
),
02
??????
Scale : 0.6,
03
??????
ZoomTransition :
"easeOut"
,
04
??????
ZoomTime : 0.5,
05
????????
ZoomInterval : 0.1,
06
????????
FitPageOnLoad :
false
,
07
????????
FitWidthOnLoad :
true
,
08
????????
PrintEnabled :
false
,
09
????????
FullScreenAsMaxWindow :
true
,
10
????????
localeChain:
"zh_CN"
//设置为中文
11
??????
};