pdf2swf+flexpapers實現(xiàn)類似百度文庫pdf在線閱讀
1:工具準(zhǔn)備
swftools.exe 下載
http://www.swftools.org/download.html
安裝至D盤
SWFTools提供了一系列將各種文件轉(zhuǎn)成swf的工具:
font2swf.exe
gif2swf.exe
jpeg2swf.exe
pdf2swf.exe
png2swf.exe
wav2swf.exe
這里我們只使用pdf2swf.exe
flexpaper下載
http://code.google.com/p/flexpaper/
這里我們使用已經(jīng)編譯好的FlexPaper的flash版本
2:示例語言,這里我使用的兩種開發(fā)環(huán)境做示例
php示例
由pdf生成swf文件
<?php
/*
* Created on 2010-11-17
*
* To change the template for this generated file go to
* Window - Preferences - PHPeclipse - PHP - Code Templates
*/
//獲取文件所在目錄
$dir=dirname(__FILE__) ;
//刪除測試文件
@unlink( $dir."\\test.swf" );
//使用pdf2swf轉(zhuǎn)換命令
$command= "D:/SWFTools/pdf2swf.exe -t \"".$dir."\\test.pdf\" -o \"".$dir."\\test.swf\" -s flashversion=9 ";
//創(chuàng)建shell對象
$WshShell = new COM("WScript.Shell");
//執(zhí)行cmd命令
$oExec = $WshShell->Run("cmd /C ". $command, 0, true);
?>
java示例
<%
/*
* Created on 2010-11-17
*/
//獲取文件所在目錄
String path=request.getRealPath("/");
//使用pdf2swf轉(zhuǎn)換命令
String command= "D:/SWFTools/pdf2swf.exe -t \""+path+"\\test.pdf\" -o \""+path+"\\test.swf\" -s flashversion=9 ";
//執(zhí)行cmd命令
Runtime.getRuntime().exec("cmd /c "+command);
%>
以上是php,java將pdf轉(zhuǎn)換成swf方式,那顯示呢,這樣我們會使用到flexpaper,以下是flexpaper的使用
使用flexpaper展現(xiàn)swf
<script type="text/javascript" src="js/swfobject/swfobject.js"></script>
<script type="text/javascript">
var swfVersionStr = "10.0.0";
var xiSwfUrlStr = "playerProductInstall.swf";
var flashvars = {
SwfFile : escape("test.swf"),
Scale : 0.6,
ZoomTransition : "easeOut",
ZoomTime : 0.5,
ZoomInterval : 0.1,
FitPageOnLoad : false,
FitWidthOnLoad : true,
PrintEnabled : true,
FullScreenAsMaxWindow : false,
ProgressiveLoading : true,
PrintToolsVisible : true,
ViewModeToolsVisible : true,
ZoomToolsVisible : true,
FullScreenVisible : true,
NavToolsVisible : true,
CursorToolsVisible : true,
SearchToolsVisible : true,
localeChain: "zh_CN"
};
var params = {
}
params.quality = "high";
params.bgcolor = "#ffffff";
params.allowscriptaccess = "sameDomain";
params.allowfullscreen = "true";
var attributes = {};
attributes.id = "FlexPaperViewer";
attributes.name = "FlexPaperViewer";
swfobject.embedSWF(
"FlexPaperViewer.swf", "flashContent",
"650", "500",
swfVersionStr, xiSwfUrlStr,
flashvars, params, attributes);
swfobject.createCSS("#flashContent", "display:block;text-align:left;");
</script>
<body>
<div style="position:absolute;left:10px;top:10px;">
<div id="flashContent">
</div>
</div>
</body>
通過上述方式我們可以將pdf轉(zhuǎn)換成相應(yīng)的swf文件,并通過flexpaper顯示,防止用戶下載,或copy。
pdf2swf的詳細參數(shù)說明,上網(wǎng)百度或者Google都能查到,但是注意的最好指定flashversion 為9,防止出現(xiàn)一些意外的錯誤。
pdf2swf 中并不是所有的pdf都能轉(zhuǎn)換,加密的pdf pdf2swf轉(zhuǎn)換不了
flexpaper 的參數(shù)詳細說明請參考 http://code.google.com/p/flexpaper/wiki/Parameters
flexpaper 常用的API http://code.google.com/p/flexpaper/wiki/API
如果出現(xiàn)亂碼問題可能是字符集,網(wǎng)上有很多的相關(guān)解決方法可以查詢【我沒有碰到字符集堵的問題】。
還有pdf中含有圖片可能轉(zhuǎn)換成swf后圖片不大清晰。
word,wps,txt等文檔也可以采用該方式轉(zhuǎn)換,但工具不一定為swftools
上傳的flexpaper附件中已經(jīng)包含flexpaper中相關(guān)文件不用重新下載,只要下載swftools,并安裝。
flexpaper附件中包含了pdf2swf.jsp與pdf2swf.php兩個文件及flexpaper相關(guān)的組件可以在java或php環(huán)境中運行。
- Java仿文庫的基本方法(openoffice+swftools+flexPaper)
- java實現(xiàn)附件預(yù)覽(openoffice+swftools+flexpaper)實例
- C#的Process類調(diào)用第三方插件實現(xiàn)PDF文件轉(zhuǎn)SWF文件
- python 如何將office文件轉(zhuǎn)換為PDF
- Java實現(xiàn)圖片轉(zhuǎn)換PDF文件的示例代碼
- Python把圖片轉(zhuǎn)化為pdf代碼實例
- python實現(xiàn)PDF中表格轉(zhuǎn)化為Excel的方法
- java實現(xiàn)word文檔轉(zhuǎn)pdf并添加水印的方法詳解
- 基于Java SWFTools實現(xiàn)把pdf轉(zhuǎn)成swf
相關(guān)文章
java實現(xiàn)酷狗音樂臨時緩存文件轉(zhuǎn)換為MP3文件的方法
這篇文章主要介紹了java實現(xiàn)酷狗音樂臨時緩存文件轉(zhuǎn)換為MP3文件的方法,涉及java針對文件操作的相關(guān)技巧,需要的朋友可以參考下2016-08-08吊打Java面試官!整理了一周的Spring面試大全(附答案)
這篇文章主要介紹了Spring面試資料(附答案)建議收藏留存,學(xué)Java的小伙伴都知道Spring是面試的必問環(huán)節(jié),看完了一天就可掌握數(shù)據(jù)結(jié)構(gòu)和算法的面試題,快來看看吧2021-08-08Java并發(fā)編程之CountDownLatch的使用
CountDownLatch是一個倒數(shù)的同步器,常用來讓一個線程等待其他N個線程執(zhí)行完成再繼續(xù)向下執(zhí)行,本文主要介紹了CountDownLatch的具體使用方法,感興趣的可以了解一下2023-05-05JavaWeb?Servlet技術(shù)及其應(yīng)用實踐
這篇文章主要介紹了JavaWeb?Servlet技術(shù),Servlet指在服務(wù)器端執(zhí)行的一段Java代碼,可以接收用戶的請求和返回給用戶響應(yīng)結(jié)果,感興趣想要詳細了解可以參考下文2023-05-05