SD kartta bulunan bir PDF dosyasındaki metni okumak istiyorum. Sd kartında saklanan bir PDF dosyasından metin alabilir miyiz?Android- PDF metnini edinin
public class MainActivity extends ActionBarActivity implements TextToSpeech.OnInitListener {
private TextToSpeech tts;
private String line = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tts = new TextToSpeech(getApplicationContext(), this);
final TextView text1 = (TextView) findViewById(R.id.textView1);
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
private String[] arr;
@Override
public void onClick(View v) {
File sdcard = Environment.getExternalStorageDirectory();
// Get the text file
File file = new File(sdcard, "test.pdf");
// ob.pathh
// Read text from file
StringBuilder text = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
// int i=0;
List<String> lines = new ArrayList<String>();
while ((line = br.readLine()) != null) {
lines.add(line);
// arr[i]=line;
// i++;
text.append(line);
text.append('\n');
}
for (String string : lines) {
tts.speak(string, TextToSpeech.SUCCESS, null);
}
arr = lines.toArray(new String[lines.size()]);
System.out.println(arr.length);
text1.setText(text);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
int result = tts.setLanguage(Locale.US);
if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) {
Log.e("TTS", "This Language is not supported");
} else {
// speakOut();
}
} else {
Log.e("TTS", "Initilization Failed!");
}
}
}
Not:
ben gibi çalıştı dosya metin dosyası (sınama.txt) ancak pdf için çalışmıyor (test.pdf)
olduğunu Ama burada metin olup olmadığı düzgün şekilde çalışıyorsa PDF'den değil, byte kodu gibi oluyor. Bunu nasıl başarabilirim?
Şimdiden teşekkürler.
PDF dosya biçimi düz metin değildir. Dosyadan metinleri çıkarmak için [PDFBox] (https://pdfbox.apache.org/) gibi bir ayrıştırıcı kitaplığına ihtiyacınız olacaktır. – TactMayers
Android platformunda PDF kutusunu kullanabilir miyim? –