中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android實現pdf在線預覽或本地預覽的方法

發布時間:2020-10-23 03:18:43 來源:腳本之家 閱讀:1173 作者:Kiven_Android 欄目:移動開發

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

由于本人水平有限,最后討論將項目需求改成將pdf下載到本地再實現自動播放。

接下來總結下目前能夠實現pdf閱讀的方案,開發當中需要根據實際需求去選擇相應的方案。

1.使用Google doc支持來展示word,excel,pdf,txt(WebView方式在線預覽):

<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=文檔地址

優點:使用簡單,無需服務器和客戶端的額外部署工作。

缺點:國內需要翻墻訪問。

2.github開源項目: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方式在線預覽,具體用法同1)

第三方公司提供的一種 Office 文檔在線預覽的功能,能夠實現 Microsoft、Adobe、WPS

文檔的移動端和PC端在線網頁訪問。使用簡單,類似 Google Doc 訪問方式,一個固定格

式的鏈接,輕松實現:http://ow365.cn/?i=您的網站ID&furl=文檔地址

優點:功能強大,使用簡單。

缺點:付費使用(可免費受限使用,如訪問次數、廣告顯示等)。

4.打開本地應用

如果移動設備中安裝有能夠打開 Office 文檔的本地應用,也可以借助它們打開所要操作的文檔,

當然前提是必須先將遠程文檔下載到設備的本地存儲空間中:

<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> 

優點:可讀可寫。

缺點:需要先行下載,同時設備中存在能夠打開文檔的本地應用,并且閱讀時會離開當前應用。

5.第三方 SDK

網上有一些免費開源的解析源碼和第三方公司提供的付費 SDK,將其嵌入自己的項目中,便能使用其中的功能操作 Office 文檔。這種方式的缺點也顯而易見,最直接的就是大大增加了 APK 安裝文件的大小。免費的開源項目,存在一些局限性和不穩定性,操作繁瑣;付費 SDK ,使用起來相對較為簡單。

免費開源:

pdfium-----Google 的開源項目,也是 Chrome 瀏覽器的PDF渲染引擎,初始代碼來自國內知名PDF技術公司「福昕」。

AndroidPdfViewer(上面的方法2)

PdfiumAndroid-----基于 pdfium 的兩個 Android 平臺實現方式,支持 PDF 文檔的應用內預覽,支持動畫、縮放、手勢和雙擊操作。

MuPDF------一個輕量級的 開源 PDF 和 XPS 查看器。

付費SDK:

Foxit PDF SDK-----福昕出品,性能穩定,功能強大,支持 PDF 的顯示、導航、創建、搜索、

注釋、保護、PDF文本提取、圖片轉換、表單數據收集和編輯等功能。

plugPDF-----來自國外的一個付費 SDK,使用簡單,只需三步即可集成到自己的應用中并使用。

6.服務器端解析

需要在服務器端完成 Office 文檔的解析工作,通過一些技術手段將文檔轉換為 Html 文件或者圖片,然后再在客戶端通過 WebView 加載顯示。

PDF.js:「 mozilla 」開源的一種JS解決方案,提供了服務器和客戶端兩種集成方式。

pdf2htmlEX:類似 PDF.js ,在服務器端集成,利用 Web技術完成 Office 文檔的解析工作。

總結:

總體來說,在 Android 平臺上實現 Office 文檔的預覽和編輯功能,屬于一個較為棘手的問題,需要結合實際產品需求和開發成本、穩定性等多方面考慮。當然,如果不是硬需求,最好不要隨意集成開源 SDK,畢竟研發成本過高,同時穩定性不見得如你所想。

以上這篇Android實現pdf在線預覽或本地預覽的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

达尔| 东安县| 赤城县| 桂阳县| 灵山县| 巢湖市| 木里| 鹤山市| 城步| 鄂托克前旗| 黄骅市| 东兴市| 社会| 常山县| 武陟县| 马龙县| 印江| 曲靖市| 永昌县| 英德市| 建水县| 天全县| 布尔津县| 德钦县| 广南县| 县级市| 安化县| 鲁山县| 德江县| 枣庄市| 拜城县| 绥阳县| 汶上县| 贡嘎县| 乐平市| 仲巴县| 义乌市| 乐昌市| 体育| 塔河县| 广昌县|