【问题标题】:How to extract text from pdf document using MuPDF in Android如何在 Android 中使用 MuPDF 从 pdf 文档中提取文本
【发布时间】:2014-10-15 07:09:45
【问题描述】:

我正在尝试使用 Android 平台中的 MuPDF 库从 PDF 文件中提取文本。

是否可以在由坐标(左、上、右、下)指定的矩形内提取文本?

注意:我没有从源代码编译库。我正在使用分布在https://github.com/libreliodev/android 中的编译库。

【问题讨论】:

  • 这个问题有答案吗?有没有找到通过指定左上右下坐标来获取文本的方法?

标签: android pdf mupdf


【解决方案1】:

是的,当然 这是你可以做的。

1.GeneratedText 活动

public class GeneratedText extends Activity {

private Button close;
private Button clear;
private TextView tv;
private String data;
String text = "";
Intent i;
Context mContext;
  //    MuPDFPageView pdfview = new MuPDFPageView(mContext, null, null);
    private EditText edit;
private Button undo;
public static GeneratedText screen;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_generated_text);

    close = (Button)findViewById(R.id.close);
    clear = (Button)findViewById(R.id.clear);
    tv = (TextView)findViewById(R.id.text1);
    edit = (EditText)findViewById(R.id.edit);
    undo = (Button)findViewById(R.id.undo);
    undo.setEnabled(false);

    i = getIntent();

    data = i.getStringExtra("data");


    tv.setText(data);
    String mypattern = "Name and address of the Employee \n";

    Pattern p = Pattern.compile(mypattern,Pattern.DOTALL);
    if(data.matches(mypattern))
    {
        System.out.println("Start Printing name");
    }
    else
        //do nothing

    edit.setText(data);
    System.out.println("hello user "+"/n"+"user1"+ "\n"+ "user2");

    SharedPreferences pref = getSharedPreferences("key", 0);
    SharedPreferences.Editor editor = pref.edit();
    editor.putString("text", data);
    editor.commit();


    clear.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            tv.setText("");
            edit.setText("");
            undo.setEnabled(true);
        }
    });
    close.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            finish();
        }
    });
    undo.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
             String value = "";
            SharedPreferences pref = getSharedPreferences("key", 0);
            value = pref.getString("text", value);
            edit.setText(value);
            tv.setText(value);
            undo.setEnabled(false); 
        }
    });

}
}

1。现在在 mupdfactivity 中写这个

public void Showtext( )
{
    destroyAlertWaiter();
    core.stopAlerts();

    MuPDFPageView pdfview = new MuPDFPageView(MuPDFActivity.this, core, null);
    String data = "";
    pdfview.setFocusable(true);
    data = pdfview.getSelectedText();
    Intent i = new Intent(getApplicationContext(),GeneratedText.class);
    i.putExtra("data",data);

    startActivity(i); 

}

在 OnAcceptButtonClick 中调用 Showtext

你会得到你的文字。

【讨论】:

  • 这个例子从 pdfView 中提取选定的文本并显示在 GeneratedText 活动中,对吧?
【解决方案2】:

是的,可以借助 MuPDF 库从 PDF 文档中提取文本。 mupdf.c 中有一个名为 text() 的方法,该方法在 MuPDFCore.java 中定义,它返回页面的文本。您需要逐页调用该方法。 脚步: 1. gotopage(页码) 2.文本()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-08
    • 2016-01-28
    • 1970-01-01
    • 2011-10-23
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    相关资源
    最近更新 更多