Web版PDF Viewer

目前公司所文件都是透過DCC轉成PDF後,再轉發到自行撰寫的文管模組,有限制列印,但沒有限制下載,因為PDF Reader本身就有另存附本的功能,故鎖瀏覽器的下載就沒有意義了!

最近,QA單位突然來了個需求,希望能針對文管模組內的所有PDF檔案限制無法被下載或複製,直覺想到的就是有沒有現成的Web版PDF Viewer可以用啊?

目前公司所文件都是透過DCC轉成PDF後,再轉發到自行撰寫的文管模組,有限制列印,但沒有限制下載,因為PDF Reader本身就有另存附本的功能,故鎖瀏覽器的下載就沒有意義了!

最近,QA單位突然來了個需求,希望能針對文管模組內的所有PDF檔案限制無法被下載或複製,直覺想到的就是有沒有現成的Web版PDF Viewer可以用啊?

Google了一下,有線上版的可使用(請參考此處),例如Google Docs Viewer,但都需要先上傳檔案,才能檢視,或者是該View要能讀取到此PDF檔,但我們的文管模組是在內網,更不用說檔案跟本是直接存取不到了!

後來找到了2個解法:

1. ASP.Net Server端的Solution,先Server端將PDF轉為圖檔再丟到前端,連結如下:http://www.codeproject.com/Articles/41933/ASP-NET-PDF-Viewer-User-Control-Without-Acrobat-Re

2. 利用html5技術的純Client端Solution - pdf.js,連結如下:http://mozilla.github.io/pdf.js/,有線上Demo

小小客製一下,就可以達到目的了!

 

個人對這2個解法的主觀優缺點分析如下:

解法1的優點是,PDF一頁一頁被轉成圖檔,因此前端沒有什麼輕易的方式將PDF檔內容複製走;缺點就是比較耗Server資源,較慢,UI差,需一頁一頁切換。

解法2的優點是,純前端解法,與後台無關,載入檔案快,與PDF Reader擁有類似的操作經驗;缺點是PDF檔完整路徑容易曝露(配合後台程式到是可以改善),必須要支援html5的瀏覽器才行。

 

當然,現在市面上有很多DRM的解決方案,有錢(買軟體)有閑(文件重新轉檔)一定做得到,功能及安全性也會比這兩個解法完整的多!

但若要不花錢,又不想重轉檔案或大改程式,這2個倒是個可以考慮的方案!