1. 程式人生 > >網頁上預覽pdf檔案的幾種方案

網頁上預覽pdf檔案的幾種方案

          網頁上檢視pdf的方案:

1.使用adobe reader的外掛 

 2.使用線上office控制元件 

3.使用火狐開源專案pdf.js(瀏覽器需支援html5)

 4.將pdf轉換為swf檔案

 5.使用pdfobject.js

    下面我來講一講各種方案的實現,第一種使用adobe reader 外掛就是需要使用者安裝adobe reader軟體,ActiveX控制元件。

window.onload = isAcrobatPluginInstall;
function isAcrobatPluginInstall() {
var flag = false;
// 如果是firefox瀏覽器
if (navigator.plugins && navigator.plugins.length) {
for (x = 0; x < navigator.plugins.length; x++) {

if (navigator.plugins[x].name == 'Adobe Acrobat')
flag = true;
return;
}
}
// 下面程式碼都是處理IE瀏覽器的情況
else 
if (window.ActiveXObject) {
for (x = 2; x < 10; x++) {
try {
oAcro = eval("new ActiveXObject('PDF.PdfCtrl." + x + "');");
if (oAcro) {
flag = true;
}
} catch (e) {
flag = false;
}
}
try {
oAcro4 = new ActiveXObject('PDF.PdfCtrl.1');
if (oAcro4)
flag = true;
} catch (e) {
flag = false;
}
try {
oAcro7 = new ActiveXObject('AcroPDF.PDF.1');
if (oAcro7)
flag = true;
} catch (e) {
flag = false;
}
}
if (flag) {
return true;
} else {
alert("對不起,您還沒有安裝PDF閱讀器軟體呢,為了方便預覽PDF文件,請選擇安裝!");
//location = 'http://ardownload.adobe.com/pub/adobe/reader/win/9.x/9.3/chs/AdbeRdr930_zh_CN.exe';
document.getElementById("IfNoAcrobat").style.display = "block";
document.getElementById("showdiv").style.display = "none";
}
return flag;
 }
       <object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="990" height="600" border="0" top="-10" name="pdf">
<param name="toolbar" value="false">
<param name="_Version" value="65539">
<param name="_ExtentX" value="20108">
<param name="_ExtentY" value="10866">
<param name="_StockProps" value="0">
<param name="SRC" value="檔案路徑">
<!-- 這裡重複設定屬性值,主要是因為firefox、Chrome支援embed,而不支援param -->
<embed src="檔案路徑" quality="high" bgcolor="#ffffff" width="990" height="700" align="center"                                     type="application/pdf" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>

第二種使用線上的office控制元件

    我使用的是一款叫做PageOffice的產品,功能很強大,不過好像要收費,有試用版的!官方文件很詳細,自己搜尋吧!

第三種使用pdf.js預覽

        這個也比較簡單,去github上下載開源專案,開啟裡面的example.html直接將面的路徑替換成你自己的就行了,裡面有些檔案可以刪除!

第四種將pdf檔案轉換成swf檔案,即使用flash檢視

      大致思路是安裝swftools軟體,利用java程式碼啟動程序將pdf轉換成swf,然後將路徑傳回前臺即可!

      簡單貼一下程式碼

              try {

String command = t + "pdf2swf.exe  -i " + sourceFile + " -o "//t是swftools軟體的安裝的根目錄  sourceFile 目標檔案路徑   destFile目的檔案路徑
+ destFile;
Process pro = Runtime.getRuntime().exec(command);


BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(pro.getInputStream()));
while (bufferedReader.readLine() != null) {


}
pro.waitFor();
return pro.exitValue();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}

     有個問題可能需要注意一下如果使用的是tomcat伺服器   tomcat資料夾是不允許其他軟體隨便寫的,建議先生成在其他資料夾下  然後java程式碼移動到專案路徑下

第五種使用pdfobject.js

       這個也是github上的開源專案,可以直接去下載,使用起來也是相當簡單

 <script type="text/javascript" src="pdfobject.js"></script>

    <script type="text/javascript">

window.onload = function (){

       var success = new PDFObject({ url: "sample.pdf" }).embed();

            };</script>