Я хотел бы выбрать файл pdf из файлового менеджера в Android и преобразовать его в текст, чтобы текст в речь могла прочитать его. Я следую за этой документацией с сайта разработчика Android;однако этот пример предназначен для открытия текстового файла. Я использую класс / библиотеку PdfReader, чтобы открыть файл и преобразовать в текст. но я не знаю, как интегрировать это с Ури. Вот код, который мне нужно преобразовать из pdf в текст, используя PdfReader
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();
}