在Android上阅读PDF文档

6
这是我的第一个问题,或者更确切地说是问题。我在我的大学最后一个学期,阅读PDF是我正在为论文开发的组成部分之一。我已经阅读了关于阅读PDF文档的问题,但没有确定的答案。我想知道有哪些方法可以阅读PDF文档?我所读到的是,有一些API可以读取PDF文档,如PDFBox,muPDFiText。除此之外,我没有看到其他的API,但这是我在其他帖子上读到的。
这里的问题首先是 PDFBox,我读到 PDFBox 不能被使用,因为它有 AWT 依赖,而 Android 没有 AWT 和 Swing 相关类。PDFBox 不考虑。我还没有读过关于 muPDF 的任何东西,尽管有人推荐给我,但我想知道它是否可用于阅读 PDF 文档。 iText 是我在 PDF 和 Android 相关问题中遇到的最常见的 API。这里的问题是它的许可证?(如果我错了,请纠正我)除了这三个解决方案之外,我还没有尝试过其他的。
除了 API,我认为 PDF 阅读器应用程序 也可以使用,如果我没记错的话?如果可以使用,则如何使用?我不是在寻找代码,而是想要一个解释,告诉我您是如何做到的以及如何在应用程序中实现它。
我考虑了另一种方法,但不确定是否可行。在 Android 中将 PDF 文档转换为 .txt 或 .doc 文件如何?当我在 Android 中加载 PDF 文档时,代码会将该 PDF 文档转换为 .txt / .doc 文件,并且应用程序将从 .txt / .doc 文件而不是 PDF 文档中搜索和提取文本。
如果你问为什么我需要这种组件,因为我正在开发一个使用 Android 搜索和提取 PDF 文档中的文本的应用程序。
以下是我的问题:
1. 有哪些在 Android 中读取 PDF 文档的方法? 2. 你使用这种方法的经验如何? 3. 你如何使用这种方法(只需流程/解释)? 4. 如果该方法有许可证,未来可能会有什么问题?
PS:如果我说错了,请纠正我。
谢谢。
2个回答

2

这是一个非常iText特定的答案,因此它并不能回答你所有的问题,但它可能仍然对你有所帮助。

在Android中阅读PDF文档的方法有哪些?

我使用iText Java绑定(继续阅读以了解LGPL许可证)

你使用这种方法的经验如何?

太棒了!它涵盖了所有与PDF相关的事情。(旧版本可能会有所不同)

你是如何使用这种方法的(只需要一个流程/解释)?

我假设这个问题与你想到的“其他方式”有关,因此与iText PDF库无关?

如果该方法有许可证,将来会有什么问题吗?

我仍然鼓励您使用更新版本的iText,但是如果您使用iText 2.1.7或更早版本,则属于旧的LGPL许可证,并且具有更大的自由度,更适合商业或私人/封闭使用,没有真正的问题。从我所知道的所有功能中,您都可以在2.1.7版本中找到。

当前版本的iText的AGPL许可证相当不错,从我理解的角度来看,您确实需要在类似的许可证下发布您的程序并使代码免费提供给其他人(最好检查详细信息),如果共享代码不是一个问题,则值得研究最新版本的iText。


参考资料:

LGPL许可证:http://www.gnu.org/licenses/lgpl.html

iText AGPL许可证:http://itextpdf.com/terms-of-use/agpl.php


你能否提供一些关于如何在应用程序中使用iText的想法? - Sahil Mahajan Mj
谢谢您抽出时间回答我的问题,sorifiend和SahilmahajanMJ对于第3个问题“我想知道您如何在应用程序中使用iText”的回答。我一定会尝试使用iText。再次感谢。 - Christian
顺便问一下,关于许可证问题,如果我的应用程序上传到“Google Play”,会因为itext许可证而被下架吗? - Christian
1
你是不是想知道如何在Android应用程序中添加iText库?加载外部库很容易,只需快速搜索“在Android中使用Java库”,就可以找到这个页面:http://mobile.tutsplus.com/tutorials/android/jar-for-android/ 向下滚动一点,就可以看到整个过程。 - sorifiend
我没有使用过“Google Play”的经验,但如果您向用户收费使用您的应用程序,则会违反iText新版本的AGPL许可证(除非您购买商业许可证)。然而,根据我所知,在具有LGPL许可证的旧版本iText下,您可以销售您的软件。我鼓励您阅读我上面链接的许可证信息,并为自己确认这一点。LGPL许可证非常简短,不需要花费很长时间阅读。 - sorifiend
显示剩余3条评论

0

我也在开发一个Android应用程序,需要在我的应用程序中打开PDF文件。起初,我考虑使用外部API来实现这一点。我尝试使用了mupdf,但是体验并不好。

后来我们的团队领导建议我先在设备上安装一个PDF查看器应用程序,然后使用代码通过已安装的PDF查看器应用程序打开PDF。

您可以轻松从Google Play下载PDF查看器应用程序,然后使用以下代码在您的应用程序中打开PDF:

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

这段代码将自动查找您设备中已安装的 PDF 应用程序,并将意图传递给该应用程序,以打开 PDF 文件。


1
这是 Android 的方式。不是他所要求的。他需要提取文本。 - Esben Skov Pedersen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接