日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【转载】FlexPaper+SWFTools 实现仿百度文库及一些小问题

發布時間:2024/10/8 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转载】FlexPaper+SWFTools 实现仿百度文库及一些小问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
網上已有很多FlexPaper仿百度文庫的一些文章,園子里也有很多大牛的詳細教程。

? 結合這次做的例子,在這里詳細記錄一下使用Flexpaper實現仿百度文庫的效果,及自己在跟著園子里的教程做的時候,遇到的一些小問題。希望能給初次接觸或者遇到同樣問題的同學們提供一些小小的幫助。(描述不足之處,請大家多多見諒,畢竟是第一次在園子里寫文章)。

1.準備工作:下載FlexPaper及PDF轉換工具pdf2swf.exe

Flexpaper下載地址:下載?(我下的是1.4.5 Flash Version?(release notes))

Pdf2swf工具下載:下載? (我下的是swftools-2011-01-23-1815.exe下載后,安裝)

2.運行官方的DEMO及Flexpaper的用法

?打開剛剛下載好的Flexpaper文件夾,打開里面的例子 index.html,

?(1)運行官方的例子,不能加載任何的.swf(包括例子中的swf)(如果能正常顯示的話,請跳過這一步)

運行官方例子的時起,連所帶的Paper.swf都不能加載成功,只見到右上角的圈圈一直在動,處于等待的狀態。如下圖:

?這種情況,是由于Flexpaper還沒獲得Adobe Flash的信任,這時你可以前住http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065?為FlexPaper添加信任.進入網頁之后 ,點擊左邊的 Global Security Settings papel 這個選項,然后在右邊(如下圖)

為你的例子所在的文件夾添加信任。然后你再運行官方的例子,就會發現可以運行成功啦。

?(2)Flexpaper的用法

?我們可以查看index.html源代碼,這里不多說,直接說它的用法吧:

?在前端的用法如下:

<!--首先要引入jquery庫及相關的js-->2 <script type="text/javascript" src="js/jquery.js"></script>
3 <script type="text/javascript" src="js/flexpaper_flash.js"></script>
4 <script type="text/javascript" src="js/flexpaper_flash_debug.js"></script> 復制代碼

 html中的代碼,只需聲明一個a標簽即可

<body>
<div style="position:absolute;left:10px;top:10px;">
<a id="viewerPlaceHolder" style="width:660px;height:480px;display:block"></a>
<script type="text/javascript">
var fp
= new FlexPaperViewer(
'FlexPaperViewer',
'viewerPlaceHolder',? <!--對應于a 標簽的id--> { config : {
SwfFile : escape(
'ajax.swf'), <!--這句是關鍵: SwfFile: 指示導入的.swf的路徑-->
Scale :
0.6,
ZoomTransition :
'easeOut',
ZoomTime :
0.5,
ZoomInterval :
0.2,
FitPageOnLoad :
true,
FitWidthOnLoad :
false,
PrintEnabled :
true,
FullScreenAsMaxWindow :
false,
ProgressiveLoading :
false,
MinZoomSize :
0.2,
MaxZoomSize :
5,
SearchMatchAll :
false,
InitViewMode :
'Portrait',

ViewModeToolsVisible :
true,
ZoomToolsVisible :
true,
NavToolsVisible :
true,
CursorToolsVisible :
true,
SearchToolsVisible :
true,
localeChain:
'en_US'
}});
</script>
</div>
</body> 復制代碼

 基本上,這樣就可以在前端顯示你的Flexpaper了.

? (3)只能加載官方例子所帶的swf,但不能加載其他或自己的swf

? 當我們想要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啦.

?

3. Asp.net 調用pdf2swf.exe把PDF轉換為SWF的用法

?代碼如下:

1 private static void ConvertCmd(string fileName)
2 {
3
4 using (Process p = new Process())
5 {
6 string cmdStr = HttpContext.Current.Server.MapPath("~/SWFTools/pdf2swf.exe");
7 string savePath = HttpContext.Current.Server.MapPath("~/TestSWF/");
8 // @"""" 相當于一個雙引號,之所以要加@"""" 就是為了防止要轉換的過程中,文件夾名字帶有空格,導致失敗
9 string sourcePath = @"""" + savePath + fileName + @"""";
10 string targetPath = @"""" + savePath + fileName.Substring(0, fileName.LastIndexOf(".")) + ".swf" + @"""";
11 string argsStr = " -t " + sourcePath + " -s flashversion=9 -o " + targetPath;
12 //調用新進程 進行轉換
13 ProcessStartInfo psi = new ProcessStartInfo(cmdStr, argsStr);
14 p.StartInfo = psi;
15 p.Start();
16 p.WaitForExit();
17 }
18 } 復制代碼

  其中,我的pdf文件存放在~/TextSWF/文件夾下,轉換后的swf也是存放在同一文件夾下。

?

按照以上的做法,應該沒什么問題,就可以做出類似于百度文庫的效果了。

好了,第一次寫文章,難免會有疏漏不足這處,希望各位高手不吝嗇指出與賜教.

?

最后附上一個簡單的小例子源碼:PDFViewer.zip

轉載于:https://www.cnblogs.com/witrays/archive/2012/01/09/2316873.html

總結

以上是生活随笔為你收集整理的【转载】FlexPaper+SWFTools 实现仿百度文库及一些小问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。