从android代码中的PDF获取页数

从android代码中的PDF获取页数,android,pdf,pdfbox,onactivityresult,android-pdf-api,Android,Pdf,Pdfbox,Onactivityresult,Android Pdf Api,我需要一个清晰的解决方案,如何从android中的PDF文件中获取页面数。假设此人选择了该文件,然后在onActivityResult()上,我想知道PDF文件有多少页。我希望有一个能适用于MinsdkVersion19的解决方案,而且不需要我为任何PDF操作软件付费,因为我已经在网上查过了,没有明确的解决方案。请它会很感激,因为我真的需要解决方案。我在Firebase中使用它,希望在上传文件时上传PDF的页数 下面是一个示例代码,我使用的是PDF框:我一直收到的错误是08-10 21:07:5

我需要一个清晰的解决方案,如何从android中的PDF文件中获取页面数。假设此人选择了该文件,然后在onActivityResult()上,我想知道PDF文件有多少页。我希望有一个能适用于MinsdkVersion19的解决方案,而且不需要我为任何PDF操作软件付费,因为我已经在网上查过了,没有明确的解决方案。请它会很感激,因为我真的需要解决方案。我在Firebase中使用它,希望在上传文件时上传PDF的页数

下面是一个示例代码,我使用的是PDF框:我一直收到的错误是08-10 21:07:57.533 20514-20514/com.example.android.firebaseupload E/file:错误:文件结束,预期行我以前必须手动输入文件路径,即使手动输入文件路径,也是相同的错误。 如何将pdf文件从路径加载到PDDocument.load()中

Java是否等同于您所要求的。虽然我不确定它有多完整,但有一个

例如:

PDDocument myDocument = PDDocument.load(new File("filename.pdf"));
int numPages = myDocument.getNumberOfPages();

找到了解决方案,我没有调用Uri上的getpath()并尝试使用新文件(Uri.getpath())打开它,而是调用openInputStream()从Uri获取InputStream。这里有很好的帮助getContentResolver().openInputStream(uri) :)也感谢这个链接让我了解更多

 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode==pickimage && resultCode==RESULT_OK && data!=null && data.getData()!=null)
    {
        filepath=data.getData();...//rest of code...

   PDDocument doc = PDDocument.load(getContentResolver().openInputStream(filepath));//main line

还有许多其他页面显示在
java count pages pdf
上进行谷歌搜索。在
android count pages pdf
上显示谷歌搜索。你的问题与那些问题有什么不同?我已经看到了这些问题,并且遇到了大多数问题(如果不是全部的话)。他们中没有一个人给了我一个有效的答案。我尝试过“建议的”解决方案,但没有用。。。或者我应该打印出我的错误吗?因为在我检查过的所有问题中,没有一个能给我一个正确的答案。我建议你问一个单独的堆栈溢出问题,在这里你可以提供一个演示你尝试了什么以及遇到了什么具体问题的例子。
PDDocument doc=PDDocument.load(“file:///storage/emulated/0/Boom%20Player/cache/c2#.pdf“.getBytes())就像是以PDF格式加载一个字节序列。PDF文件不是以“file://”开头,而是以“%PDF”开头。请传递一个文件对象。确实是
getByte‌​s()
调用完全错误。谢谢,我在研究时也看到了,主要问题是第一行的新文件部分,如何将其定向到PDF文件而不给我错误。我尝试过Bytes[]和类似的解决方案,但一直给我这个错误:文件结尾,预期行尝试只通过PDF发送,而不是使用绝对路径或文件本身的名称发送字节表示?file:///storage/emulated/0/Boom%20Player/cache/c2#.pdfdid 你对此有异议吗?PDDocument.load(新文件(“file:///storage/emulated/0/Boom%20Player/cache/c2#.pdf"));
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode==pickimage && resultCode==RESULT_OK && data!=null && data.getData()!=null)
    {
        filepath=data.getData();...//rest of code...

   PDDocument doc = PDDocument.load(getContentResolver().openInputStream(filepath));//main line