最近有個需求,做一個IT知識庫,類似于文庫,說到文庫肯定會用到線上浏覽文檔了,所有在網上翻閱了一下類似豆丁的線上浏覽器插件的資料,将其進行了二次開發,在這跟需要用到的朋友分享一下,下面部分内容用到有些前輩的部落格内容,首次寫博,寫的不好之處請見諒。。。高手勿噴,O(∩_∩)O謝謝
1.前期準備工作
1.首先二次開發,當然前提是需要一份FlexPaper的源碼。源碼下載下傳位址:
http://files.cnblogs.com/yimiao/FlexPaper.rar
2.由于開發需要Adobe Flash Builder,我用的版本是4.5的
在這裡貼一篇關于Adobe Flash Builder4.5的下載下傳及安裝方面的部落格供大夥參閱一下。部落格:
http://blog.csdn.net/buptdavid/article/details/6880497
提供個key:1499-4181-9296-6452-2998-3656
準備工作做完之後,接着往下看:
2.源碼修改
首先在flash builder中建立一個flex項目,第一步填寫項目名稱FlexPaperViewer,第二步直接預設,最後一步也無需更改。

1.1然後把你1步下載下傳下來的源碼解壓。
1.2将這個檔案直接拷貝到FlexPaperView項目中,如下圖顯示:
2. 1将項目下FlexPaperViewer/src/預設包/FlexPaperViewer.mxml檔案内容換成:
2.2替換内容之後,運作程式,會出現如下一個錯誤:
點選這個錯誤,跳到錯誤語句那裡,然後将其删除,不會影響程式
2.3
再運作程式,浏覽器就能顯示出來了
3.樣式修改
3.1:去除右上角Logo,以及右下角logo
--1.去右上角logo,首先打開FlexPaperViewer.mxml檔案,搜尋bttnInfo,一共就三句,全部注釋掉。然後再運作,就會發現右上角的logo就沒了
--2.右下角Logo
打開Viewer.as檔案,找到createDisplayContainer這個函數。在addChild(_skinImgDo);後面加入_skinImgDo.visible = false;(雖然不懂,但是這些看看也都能知道個大概),再運作的時候發現右下角的Logo也不見了
--3:去列印按鈕
去右上角logo,首先打開FlexPaperViewer.mxml檔案,搜尋print,将這行注釋或者删除,列印按鈕也消失了
3.2:修改樣式或者删除工具欄裡面的按鈕都可以在FlexPaperViewer.mxml檔案裡進行相應的操作
感覺工具欄裡面的圖示不好看的話,可以在網上down一些小圖示然後拷貝到assets這個檔案夾裡面,然後将原來的圖示的名字換到你的圖示裡面就行了
這是我換過圖示的樣子,大家也都可以更換一下,根據自己的喜好換換。原先的感覺太死闆不怎麼好看
3.3:當滑鼠移到工具欄上的圖示時,上面顯示英文提示:如果想換成中文的話,找到檔案夾路徑locale/en_Us/FlexPaper.properties的這個檔案,修改對應的提示如下所示:
4.高亮顯示問題:
修改之後的浏覽器搜尋内容時,不會出現高亮顯示,這是為什麼呢,有的朋友可能發現,自帶的檔案Paper.swf就可以,為什麼自己生成的swf檔案不可以呢?
這個原因是因為你使用SWFTools裡面這個轉換工具pdf2swf.exe時,參數沒給, string argsStr = PDFFilePath + " -o " + targetPath + " -T 9 -f";,加上-f就可以查找時高亮顯示了
另附上pdf2swf.exe詳細參數:
其中把pdf轉成swf的工具就是pdf2swf了。在指令行中運作pdf2swf src.pdf des.swf一般能滿足需求。而指令行參數可以通過pdf2swf -f得到:
-h , –help Print short help message and exit 列印幫助資訊
-V , –version Print version info and exit 列印版本号
-o , –output file.swf Direct output to file.swf. If file.swf contains ‘13568621′ (file13568630.swf), then each page指定輸出的swf檔案名
-p , –pages range Convert only pages in range with range e.g. 1-20
or 1,4,6,9-11 or
指定轉換的頁面範圍,使用的頁碼描述方法與列印機列印檔案時候的選頁一樣
-P , –password password Use password for deciphering the pdf.指定打開pdf的密碼
-v , –verbose Be verbose. Use more than one -v for greater effect.轉換時輸出詳細的内容
-z , –zlib Use Flash 6 (MX) zlib compression.使用Flash 6的zlib壓縮機制
-i , –ignore Allows pdf2swf to change the draw order of the pdf. This may make the generated允許程式修改pdf的繪制順序,可能會導緻結果與原來有差異
-j , –jpegquality quality Set quality of embedded jpeg pictures to quality. 0 is worst (small), 100 is best (big). (default:85)設定轉換其中的jpeg圖檔的品質,從0到100,預設值是85。
-s , –set param=value Set a SWF encoder specific parameter. See pdf2swf -s help for more information. 設定SWF轉碼時候的參數,具體參數可以用pdf2swf -s help擷取
-w , –samewindow When converting pdf hyperlinks, don’t make the links open a new window. 設定轉換後的swf打開原pdf中的連接配接時使用相同的視窗
-t , –stop Insert a stop() command in each page. 在每頁結尾添加一個stop()指令
-T , –flashversion num Set Flash Version in the SWF header to num. 設定SWF所使用的flash版本号
-F , –fontdir directory Add directory to the font search path. 指定字型檔案所在路徑
-b , –defaultviewer Link a standard viewer to the swf file. 指定預設的swf導航檔案,用來翻頁、放大縮小等等
-l , –defaultloader Link a standard preloader to the swf file which will be displayed while the main swf is loading. 指定預設的swf加載檔案,用來顯示加載程序效果
-B , –viewer filename Link viewer filename to the swf file. 指定swf導航檔案,作用同-b
-L , –preloader filename Link preloader filename to the swf file. 指定swf加載檔案,作用同-l
-q , –quiet Suppress normal messages. Use -qq to suppress warnings, also. 不列印普通資訊,用-qq就不列印警告資訊。
-S , –shapes Don’t use SWF Fonts, but store everything as shape. 不使用字型,所有都轉為形狀。
-f , –fonts Store full fonts in SWF. (Don’t reduce to used characters). 在swf中儲存全部字型。
-G , –flatten Remove as many clip layers from file as possible. 在檔案中盡量去除影片層,合并它們
-I , –info Don’t do actual conversion, just display a list of all pages in the PDF. 不做實際轉換,僅顯示PDF的資訊。
-Q , –maxtime n Abort conversion after n seconds. Only available on Unix. 如果運作時間逾時則退出。
基本上這個小插件的的二次開發就到這裡了,寫了這麼多,感覺有點啰嗦。不過能幫助到大家還是很好的