Как скопировать текст с помощью MuPDF?

Я использую библиотеку MuPDF на платформе Android. И я хочу извлечь текст из файла PDF. У меня есть пример из Github, который нормально показывает файлы PDF.

Итак, можно ли извлечь текст из pdf с помощью MuPDF и скопировать тексты???


person Rabib Galib    schedule 04.01.2017    source источник


Ответы (1)


Да, вы можете извлечь текст из PDF.

Если у вас есть образец библиотеки, вы можете увидеть следующий код в MuPDFPageView.java.

@Override
protected TextWord[][] getText() {
    return mCore.textLines(mPageNumber);
}

Это позволит извлечь текст из PDF по номеру страницы.

Посмотрите, как используется метод ниже, и вы получите представление о том, как работает выделение и копирование текста.

@TargetApi(11)
public boolean copySelection() {
    final StringBuilder text = new StringBuilder();

    processSelectedText(new TextProcessor() {
        StringBuilder line;

        public void onStartLine() {
            line = new StringBuilder();
        }

        public void onWord(TextWord word) {
            if (line.length() > 0)
                line.append(' ');
            line.append(word.w);
        }

        public void onEndLine() {
            if (text.length() > 0)
                text.append('\n');
            text.append(line);
        }
    });

    if (text.length() == 0)
        return false;

    int currentApiVersion = Build.VERSION.SDK_INT;
    if (currentApiVersion >= Build.VERSION_CODES.HONEYCOMB) {
        android.content.ClipboardManager cm = (android.content.ClipboardManager)mContext.getSystemService(Context.CLIPBOARD_SERVICE);

        cm.setPrimaryClip(ClipData.newPlainText("MuPDF", text));
    } else {
        android.text.ClipboardManager cm = (android.text.ClipboardManager)mContext.getSystemService(Context.CLIPBOARD_SERVICE);
        cm.setText(text);
    }

    deselectText();

    return true;
}
person Ganesh Kanna    schedule 27.01.2017