在 Xamarin.Android 當中讀取 PDF 資料…I
主題: |
在 Xamarin.Android 當中讀取 PDF 資料…I |
文章簡介: |
平常我們在文件上很常使用 PDF 作一些文件儲存格式,但遇到 Mobile App要讀取 PDF 的時候,就會常常不知該如何完成,那就讓本篇文章來指引如何在 Xamarin.Android 中完成PDF文件的讀取吧~~~ |
作者: |
James Tsai |
版本/產出日期: |
V1.0/2017.2.27 |
1. 前言
• 以下我們就簡單的來看看如何在 Xamarin.Android 當中,將PDF資料透過手機上既有的PDF App 來讀取。
2. 環境準備
• 建立可測試執行Xamarin.Android的專案環境。
3. 本文
前置準備
• PDF文件準備:
準備一個PDF文件放在 Xamarin.Android 專案的 Asserts 中,如下圖:
• 測試程式的 Layout 外觀的準備:
在XamarinDroidForReadPdfFile專案,找到Resources -> layout當中打開Main.axml,將設計畫面處理成如下圖所示:
實線框當中的元件為Button,由上到下的 Id 依序為 CreatePDFFileFromLocalButton、 DeletePDFFileButton、ReadPDFUsingDefaultAppButton。
操控介面的程式實際撰寫
• 打開專案底下的 MainActivity.cs 來增加對應的程式碼。
• 首先先設定畫面按鈕與按鈕點選的事件註冊,如下圖程式碼:
• 在此測試的 App 其中的第一個按鈕功能是想要做到從建立PDF檔案到Android 的實體檔案路徑上。下圖展示額外寫一個方法來完成從將檔案複製到Android 實體路徑的功能:
• 接著回到 CreatePDFFileFromLocalButton 按鈕Click事件的程式碼,呼叫此方法。
• 繼續完成第二個DeletePDFFileButton按鈕的Click功能,將已經存在Android 手機實體路徑的PDF檔案刪除,如下圖程式碼:
• 最後第三個按鈕ReadPDFUsingDefaultAppButton的Click功能,則是切換到另外一個叫作ReadPdfUsingDefaultAppActivity的Activity,如下圖:
• 而在 ReadPdfUsingDefaultAppActivity這個 Activity 的OnCreate方法當中設計了呼叫ReadPdfByDefaultApp的方法,如下圖:
其中虛線框的OpenFile() 方法則是參考
https://forums.xamarin.com/discussion/39912/open-pdf-in-android-default-pdf-reader
當中AlessandroCaliaro所回應的程式碼完成的。
• 最後記得到此專案的屬性中,找到 Android 資訊清單,設定所需要的兩個使用權限Read_External_Storage、Write_External_Storage。
測試執行與結果
• 開始測試之前,請先從 Visual Studio 的 "工具" 選單當中,找到 "Android -> Android 裝置監視器"。
在 "Android 裝置監視器" 當中,看到 "File Explorer" 分頁。
• 接著回到在 Visual Studio 當中執行測試該專案後,回到 "Android 裝置監視器" 的 "File Explorer" 當中的 "data –> data" 底下,找到該測試專案 XamarinDroidForReadPdfFile.XamarinDroidForReadPdfFile 使用檔案的情形。
• 在執行起來的 App1當中,點選第一顆按鈕:
就會在 "File Explorer" 當中看到出現了 "MyPDFDemoFile.pdf "。
• 接著再按下第三顆按鈕準備透過手機預設的PDF App讀取PDF。
• 若手機上沒有安裝讀取PDF 的App則會顯示如下畫面:
• 當然,若是有安裝好讀取PDF的App的話,就可以正確開啟所指定的PDF檔案。
以上就是在Xamarin.Android專案上透過預設PDF App讀取PDF檔案,有興趣的人趕快試用看看吧~~
4. 參考來源
• Open PDF in Android default PDF reader:
https://forums.xamarin.com/discussion/39912/open-pdf-in-android-default-pdf-reader