java - 如何将文件路径传递给 iText 的 PdfReader
问题描述
我使用 iText 来获取这样的 pdf 内容:
try {
String parsedText="";
File file = new File(getApplicationContext().getFilesDir(), "test.pdf");
PdfReader reader = new PdfReader(String.valueOf(file));
int n = reader.getNumberOfPages();
for (int i = 0; i <n ; i++) {
parsedText = parsedText+ PdfTextExtractor.getTextFromPage(reader, i+1).trim()+"\n"; //Extracting the content from the different pages
}
reader.close();
} catch (Exception e) {
Log.d("heh", String.valueOf(e));
}
但它返回错误:
/data/user/0/com.clementine.story_project/files/test.pdf not found as file or resource.
我究竟做错了什么?
解决方案
PdfReader 不接受文件对象,但它接受 InputStream。所以你可以使用下面的代码
Path path = file.toPath();
if(Files.exists(path)) {
PdfReader reader = new PdfReader(Files.newInputStream(path));
//other operations
}
此外,在调用流之前添加了文件存在条件。
推荐阅读
- android - app:backgroundTint 对 ViewGroup 没有影响
- php - MySQL 是否具有针对基于 URL 的攻击的内置注入攻击保护?
- zlib - zlib 在 Z_STREAM_END 之后继续膨胀
- python - 在您为应用程序应用迁移之前,项目可能无法正常工作,但迁移不起作用
- html - 溢出自动不适用于弹性容器
- ruby - 如何在Ruby中按字典顺序对数组元素进行排序
- sql - 如何在一个语句中从三个表中查询sql?
- javascript - 函数作为参数发送给其他函数
- javascript - 我希望 vs-code 对 java 脚本文件中的未定义属性发出警告
- c# - 财务计算:双倍还是小数?