Android-将PDF转换为文本文件

Android-将PDF转换为文本文件,android,pdf,text-files,Android,Pdf,Text Files,我想从pdf文件中提取文本,但我引用了和链接,但没有用 public class MainActivity extends ActionBarActivity implements TextToSpeech.OnInitListener { private TextToSpeech tts; private String line = null; @Override public void onCreate(Bundle savedInstanceState)

我想从pdf文件中提取文本,但我引用了和链接,但没有用

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.txt");

                // 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!");
        }
    }

}
公共类MainActivity扩展了ActionBarActivity实现TextToSpeech.OnInitListener{
私密文本语音tts;
私有字符串行=null;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tts=new TextToSpeech(getApplicationContext(),this);
最终TextView text1=(TextView)findViewById(R.id.textView1);
findViewById(R.id.button1).setOnClickListener(新的OnClickListener(){
私有字符串[]arr;
@凌驾
公共void onClick(视图v){
文件sdcard=Environment.getExternalStorageDirectory();
//获取文本文件
File File=新文件(SD卡,“test.txt”);
//ob.path
//从文件中读取文本
StringBuilder text=新的StringBuilder();
试一试{
BufferedReader br=新的BufferedReader(新文件读取器(文件));
//int i=0;
列表行=新的ArrayList();
而((line=br.readLine())!=null){
行。添加(行);
//arr[i]=直线;
//i++;
text.append(行);
text.append('\n');
}
用于(字符串:行){
tts.speak(string,TextToSpeech.SUCCESS,null);
}
arr=lines.toArray(新字符串[lines.size()]);
系统输出打印长度(arr.length);
text1.setText(text);
}捕获(例外e){
e、 printStackTrace();
}
}
});
}
@凌驾
公共无效onInit(int状态){
if(status==TextToSpeech.SUCCESS){
int result=tts.setLanguage(Locale.US);
if(result==TextToSpeech.LANG_缺少数据| | result==TextToSpeech.LANG_不受支持){
Log.e(“TTS”,“不支持这种语言”);
}否则{
//说话();
}
}否则{
Log.e(“TTS”,“初始化失败!”);
}
}
}

在android中如何将pdf文件转换为文本文件?

您是否尝试了此链接:您尝试从pdf中读取文本,就像它是文本文件一样。事实并非如此。它是一个二进制文件,其中文本通常使用非标准编码绘制,并且绘制操作通常也被压缩。本质上,您需要一个PDF库来解压缩、解码和重新组装文本。如果我使用pdfbox库,则会出现以下错误:“java.lang.NoClassDefFoundError:org.pdfbox.pdmodel.PDDocument”pdfbox引用android系统上不存在的java运行时类。如果您想在那里使用PDFBox,您可能需要对其进行修补以删除这些依赖项(以及其中的一些功能)。