【发布时间】:2017-08-10 19:31:47
【问题描述】:
我需要一个明确的解决方案来了解如何从 android 中的 PDF 文件中获取页数。假设此人已在 onActivityResult() 上选择了文件,我想知道 PDF 文件有多少页。我想要一个适用于 minSdkVersion 19 的解决方案,并且不需要我为任何 PDF 处理软件付费,因为我已经在网上查过了,没有明确的解决方案。请它将不胜感激,因为我真的需要解决方案。我将它与 Firebase 一起使用,并想在上传文件时上传 PDF 的页数。
这是一个示例代码,我使用了 PDF Box:我不断收到的错误是 08-10 21:07:57.533 20514-20514/com.example.android.firebaseupload E/file: Error: End- of-File, 预期行 我之前必须手动输入文件路径,即使手动输入文件路径后仍然出现同样的错误。 如何将 pdf 文件从路径加载到 PDDocument.load() 中??
try {
PDDocument doc = PDDocument.load("file:///storage/emulated/0/Boom%20Player/cache/c2#.pdf".getBytes());
Toast.makeText(MainActivity.this,"Number of pages: "+doc.getNumberOfPages(),Toast.LENGTH_LONG).show();
}
catch (Exception e)
{
Log.e("file",e.getMessage().toString());
}
【问题讨论】:
-
stackoverflow.com/q/35629451/115145 stackoverflow.com/q/6026971/115145 stackoverflow.com/q/4134949/115145 和许多其他页面出现在
java count pages pdf上的 Google 搜索中。 stackoverflow.com/q/30483373/115145 出现在android count pages pdf上的 Google 搜索中。你的问题和那些有什么不同? -
我看过这些,如果不是全部的话,大部分都遇到过。他们都没有给我一个有效的答案。我尝试了“建议”的解决方案,但无济于事。 ...或者我应该打印出我遇到的错误?因为在我检查的所有内容中,没有一个给我正确的答案。
-
我建议您提出一个单独的 Stack Overflow 问题,并在其中提供 minimal reproducible example 说明您尝试了什么以及遇到了哪些具体问题。
-
PDDocument doc = PDDocument.load("file:///storage/emulated/0/Boom%20Player/cache/c2#.pdf".getBytes());在我看来好像您正在将字节序列加载为 PDF。 PDF 文件不以“file://”开头,而是以“%PDF”开头。请传递一个文件对象。 -
确实
getBytes()调用是完全错误的。
标签: android pdf pdfbox onactivityresult android-pdf-api