首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pdf提取文本

Pdf提取文本
EN

Stack Overflow用户
提问于 2018-04-26 15:56:37
回答 1查看 79关注 0票数 0

中选择pdf文件的路径。

代码语言:javascript
复制
private static final int DIALOG_LOAD_FILE = 1000;

我有两个按钮,一个用于获取pdf文件的路径,另一个用于输出文本:

代码语言:javascript
复制
Button b1 = (Button) x.findViewById(R.id.buttonStripText);
        Button button = (Button) x.findViewById(R.id.pick);
        button.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                intent.setType("file/*");
                startActivityForResult(intent,DIALOG_LOAD_FILE);
            }
        });
        b1.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                stripText(v);
            }
        });

另外两个函数是

代码语言:javascript
复制
@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        switch(requestCode){
            case DIALOG_LOAD_FILE:
                if(resultCode==RESULT_OK){
                   fileName = data.getData().getPath();
                   System.out.println("Your File Name is:::"+fileName);
                }
                break;

        }
    }
    private void setup() {
        PDFBoxResourceLoader.init(getActivity().getApplicationContext());
        root = android.os.Environment.getExternalStorageDirectory();
        assetManager = getActivity().getAssets();
    }
    public void stripText(View v) {
        String parsedText = null;
        try {

            PDDocument document  = PDDocument.load(assetManager.open("cover_letter.pdf"));
            PDFTextStripper pdfStripper = new PDFTextStripper();
            pdfStripper.setStartPage(0);
            pdfStripper.setEndPage(1);
            parsedText = "Parsed text: " + pdfStripper.getText(document);
                if (document != null) document.close();
            } catch (Exception e) {
                e.printStackTrace();
            }

        tv.setText(parsedText);
    }

我没有抛出任何错误,但也没有得到提取的文本。这种Dialog_Load_File打开谷歌驱动器,如果可能的话,向我展示如何打开内部存储!任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-27 13:07:04

代码语言:javascript
复制
PDDocument document = PDDocument.load(assetManager.open("cover_letter.pdf"));
PDDocument document = PDDocument.load(... from any input stream .... ); 

因此,如果您可以从资产、原始或文件或uri打开输入流,那么就完成了。

例如,如果在onActivityResult中获得uri

代码语言:javascript
复制
InputStream is = getContentResolver().openInputStream(data.getData());
PDDocument document = PDDocument.load( is ); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50047361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档