【发布时间】:2019-11-07 14:28:41
【问题描述】:
我想从 android 的文件管理器中选择一个 pdf 文件并将其转换为文本,以便文本到语音可以读取它。我正在关注来自 android 开发者网站的文档;但是,此示例用于打开文本文件。我正在使用 PdfReader 类/库来打开文件并转换为文本。但我不知道如何将它与 Uri 集成。 这是我需要使用 PdfReader 从 pdf 转换为文本的代码
PdfReader pdfReader = new PdfReader(file.getPath());
stringParser = PdfTextExtractor.getTextFromPage(pdfReader, 1).trim();
pdfReader.close();
我正在使用意图调用文件管理器,以便用户可以选择一个 pdf 文件
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.setType("*/*");
startActivityForResult(intent, READ_REQUEST_CODE);
}
});
然后我正在获取 uri 并打开文件
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent resultData) {
if (requestCode == READ_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
if(resultData != null) {
Uri uri = resultData.getData();
Toast.makeText(MainActivity.this, filePath , Toast.LENGTH_LONG).show();
readPdfFile(uri);
}
}
}
private String readTextFromUri(Uri uri) throws IOException {
StringBuilder stringBuilder = new StringBuilder();
try (InputStream inputStream =
getContentResolver().openInputStream(uri);
BufferedReader reader = new BufferedReader(
new InputStreamReader(Objects.requireNonNull(inputStream)))) {
String line;
while ((line = reader.readLine()) != null) {
stringBuilder.append(line);
}
}
return stringBuilder.toString();
}
【问题讨论】:
-
readPdfFile(uri);???您没有发布 readPdfFIle() 的代码。你也没有告诉你在哪里以及如何调用发布的函数。例如,您没有告诉您使用 PdfReader 的方式。 -
@blackpos 阅读帖子中的所有信息。 pdfreader 代码进入 readTextFromUri 中,该方法正在解析文本文件。我需要修改以便它解析一个 pdf 文件
标签: android file-manager pdf-reader