最近項(xiàng)目中需要使用在線預(yù)覽pdf,并要能實(shí)現(xiàn)自動播放,我想這樣的需求無論如何來說都是很操蛋的

站在用戶的角度思考問題,與客戶深入溝通,找到青龍網(wǎng)站設(shè)計與青龍網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國際域名空間、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋青龍地區(qū)。
由于本人水平有限,最后討論將項(xiàng)目需求改成將pdf下載到本地再實(shí)現(xiàn)自動播放。
接下來總結(jié)下目前能夠?qū)崿F(xiàn)pdf閱讀的方案,開發(fā)當(dāng)中需要根據(jù)實(shí)際需求去選擇相應(yīng)的方案。
1.使用Google doc支持來展示word,excel,pdf,txt(WebView方式在線預(yù)覽):
<span >WebView urlWebView = (WebView)findViewById(R.id.containWebView);
urlWebView.setWebViewClient(new AppWebViewClients());
urlWebView.getSettings().setJavaScriptEnabled(true);
urlWebView.getSettings().setUseWideViewPort(true);
urlWebView.loadUrl("http://docs.google.com/gview?embedded=true&url="
+ "YOUR_DOC_URL_HERE");
public class AppWebViewClients extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
}
}</span>https://docs.google.com/gview?embedded=true&url=文檔地址
優(yōu)點(diǎn):使用簡單,無需服務(wù)器和客戶端的額外部署工作。
缺點(diǎn):國內(nèi)需要翻墻訪問。
2.github開源項(xiàng)目:https://github.com/JoanZapata/android-pdfview:
<span >引入:compile 'com.joanzapata.pdfview:android-pdfview:1.0.4@aar'</span>
<span > <com.joanzapata.pdfview.PDFView android:id="@+id/pdfview" android:layout_width="match_parent" android:layout_height="match_parent"/></span>
<span > pdfView = (PDFView) findViewById(R.id.pdfview);
//加載assets下的文件
pdfView.fromAsset("sample.pdf")
//.fromFile("")指定加載某個文件
//指定加載某一頁
/*.pages(0, 1,2, 3, 4, 5)*/
.defaultPage(1)
.showMinimap(false)
.enableSwipe(true)
/* .onDraw(onDraw)
.onLoad(onLoadCompleteListener)
.onPageChange(onPageChangeListener)*/
.load();</span> 里面有很多方法,可以去看PDFView的源碼。
3.Office Web 365(WebView方式在線預(yù)覽,具體用法同1)
第三方公司提供的一種 Office 文檔在線預(yù)覽的功能,能夠?qū)崿F(xiàn) Microsoft、Adobe、WPS
文檔的移動端和PC端在線網(wǎng)頁訪問。使用簡單,類似 Google Doc 訪問方式,一個固定格
式的鏈接,輕松實(shí)現(xiàn):http://ow365.cn/?i=您的網(wǎng)站ID&furl=文檔地址
優(yōu)點(diǎn):功能強(qiáng)大,使用簡單。
缺點(diǎn):付費(fèi)使用(可免費(fèi)受限使用,如訪問次數(shù)、廣告顯示等)。
4.打開本地應(yīng)用
如果移動設(shè)備中安裝有能夠打開 Office 文檔的本地應(yīng)用,也可以借助它們打開所要操作的文檔,
當(dāng)然前提是必須先將遠(yuǎn)程文檔下載到設(shè)備的本地存儲空間中:
<span >Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//officeFile:本地文檔;type:文檔MIMEType類型,可以使用文件格式后綴
intent.setDataAndType(Uri.fromFile(officeFile), type);
if (intent.resolveActivity(getPackageManager())!=null){
startActivity(intent);
}</span> 優(yōu)點(diǎn):可讀可寫。
缺點(diǎn):需要先行下載,同時設(shè)備中存在能夠打開文檔的本地應(yīng)用,并且閱讀時會離開當(dāng)前應(yīng)用。
5.第三方 SDK
網(wǎng)上有一些免費(fèi)開源的解析源碼和第三方公司提供的付費(fèi) SDK,將其嵌入自己的項(xiàng)目中,便能使用其中的功能操作 Office 文檔。這種方式的缺點(diǎn)也顯而易見,最直接的就是大大增加了 APK 安裝文件的大小。免費(fèi)的開源項(xiàng)目,存在一些局限性和不穩(wěn)定性,操作繁瑣;付費(fèi) SDK ,使用起來相對較為簡單。
免費(fèi)開源:
pdfium-----Google 的開源項(xiàng)目,也是 Chrome 瀏覽器的PDF渲染引擎,初始代碼來自國內(nèi)知名PDF技術(shù)公司「福昕」。
AndroidPdfViewer(上面的方法2)
PdfiumAndroid-----基于 pdfium 的兩個 Android 平臺實(shí)現(xiàn)方式,支持 PDF 文檔的應(yīng)用內(nèi)預(yù)覽,支持動畫、縮放、手勢和雙擊操作。
MuPDF------一個輕量級的 開源 PDF 和 XPS 查看器。
付費(fèi)SDK:
Foxit PDF SDK-----福昕出品,性能穩(wěn)定,功能強(qiáng)大,支持 PDF 的顯示、導(dǎo)航、創(chuàng)建、搜索、
注釋、保護(hù)、PDF文本提取、圖片轉(zhuǎn)換、表單數(shù)據(jù)收集和編輯等功能。
plugPDF-----來自國外的一個付費(fèi) SDK,使用簡單,只需三步即可集成到自己的應(yīng)用中并使用。
6.服務(wù)器端解析
需要在服務(wù)器端完成 Office 文檔的解析工作,通過一些技術(shù)手段將文檔轉(zhuǎn)換為 Html 文件或者圖片,然后再在客戶端通過 WebView 加載顯示。
PDF.js:「 mozilla 」開源的一種JS解決方案,提供了服務(wù)器和客戶端兩種集成方式。
pdf2htmlEX:類似 PDF.js ,在服務(wù)器端集成,利用 Web技術(shù)完成 Office 文檔的解析工作。
總結(jié):
總體來說,在 Android 平臺上實(shí)現(xiàn) Office 文檔的預(yù)覽和編輯功能,屬于一個較為棘手的問題,需要結(jié)合實(shí)際產(chǎn)品需求和開發(fā)成本、穩(wěn)定性等多方面考慮。當(dāng)然,如果不是硬需求,最好不要隨意集成開源 SDK,畢竟研發(fā)成本過高,同時穩(wěn)定性不見得如你所想。
以上這篇Android實(shí)現(xiàn)pdf在線預(yù)覽或本地預(yù)覽的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持創(chuàng)新互聯(lián)。
分享標(biāo)題:Android實(shí)現(xiàn)pdf在線預(yù)覽或本地預(yù)覽的方法
分享地址:http://chinadenli.net/article12/ppcsdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、ChatGPT、網(wǎng)站內(nèi)鏈、網(wǎng)站建設(shè)、電子商務(wù)、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)