【问题标题】:How to copy text using MuPDF?如何使用 MuPDF 复制文本?
【发布时间】:2017-01-04 14:57:43
【问题描述】:

我在 android 平台上使用 MuPDF 库。我想从 pdf 文件中提取文本。我有一个来自Github 的示例,它可以正常显示 pdf 文件。

那么,是否可以使用 MuPDF 从 pdf 中提取文本并复制文本?

【问题讨论】:

    标签: android mupdf


    【解决方案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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-26
      • 2014-10-15
      • 1970-01-01
      • 2014-09-09
      • 2014-04-28
      • 1970-01-01
      • 2016-04-13
      • 1970-01-01
      相关资源
      最近更新 更多