简体   繁体   中英

Reading a PDF Document in Android

this is my first question or rather Questions. I am in my last semester this college and Reading PDF is one of the components that im developing for my thesis.

I have been reading questions about reading a pdf document but there are no solid answer. I want to know what are the ways to read a PDF document? what i have read that there are API's available that can read PDF Document like PDFBox, muPDF , and iText . I have not seen any other API's but this is what i have read on other posts.

The problem here is first PDFBox i read that PDFBox can not be use because of AWT Dependencies and android is has no AWT and Swing related classes. PDFBox is out of the question. muPDF i have not read anything about muPDF, it was recommended to me but i want to know if it is usable to read PDF Document. iText this is the most common API that i encounter in PDF and android related questions. the problem here is its License ?(Correct me if im wrong) I have not tried any of this 3 yet because i want know if there are another solutions beside this 3.

Other than APIs, i think PDF Reader Applications can be used too if im not mistaken? if it can be used then HOW? . I'm not looking for a Code but a explanation of how you did it and how you implemented it in your application.

i have thought another way but i do not know if this is possible. how about convert PDF Document into a .txt or .doc file? inside the android. it would be like when i load a PDF document inside the android a Code will convert that PDF Document into a .txt / .doc file and the application will search and extract text from the .txt / .doc file rather then the PDF Document.

if you are asking WHY do i need this kind of component, because i'm working on a application that would SEARCH and EXTRACT text from a PDF Document using Android.

This is my questions:

  1. What are the ways to read a PDF Document in Android?
  2. What are your experiences in using this kind of method?
  3. How did you do it using this kind of method(just a flow/explanation would do)?
  4. If the method has a License what would be the problem in the future?

PS: Correct me if i'm wrong.

Thank you.

This is a very iText specific answer so it does not answer all your questions, but it may still be of help to you.

What are the ways to read a PDF Document in Android?

I use the iText java bindings (Keep reading to find out about LGPL licensing)

What are your experiences in using this kind of method?

Great! It covers all things PDF related. (Older versions may be a little different)

How did you do it using this kind of method(just a flow/explanation would do)?

I assume this question is related to the "other way" that you thought of so it is not relevant to the iText PDF library?

If the method has a License what would be the problem in the future?

I still encourage you to use the updated version of iText, however if you use iText version 2.1.7 or older it falls under the old LGPL license, and has far more free reign and is more suitable for commercial or private/closed use with no real problems. From what I can tell all the functionality you are after is available in version 2.1.7 version.

The AGPL license for current version of iText is pretty decent, from what I understand you do need to publish your program under a similar license and make the code freely available to others (it would pay to check the details though), if sharing code is not a problem then the latest version of iText is worth looking into.


References:

LGPL License: http://www.gnu.org/licenses/lgpl.html

iText AGPL License: http://itextpdf.com/terms-of-use/agpl.php

I was also working on an Android Application, where i need to open PDF files in my android application. First i thought about doing this by using foreign API's. I tried to used mupdf, but it was not a good experience.

Then our team leader suuggested me to first install a pdf viewer application in your device and then use code to open pdf through the installed pdf viewer application.

You can easily download pdf viewer application from gogle play, then you can use the following code to open the pdf in your application,

                File file = new File("/sdcard/MyPDFfile.pdf");
                Uri path = Uri.fromFile(file);
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setDataAndType(path, "application/pdf");
                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(intent);

This code will automatically look for the installed pdf application in your device and will pass the intent to that application to open the pdf file.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM