如何使用 MuPDF 复制文本?
How to copy text using MuPDF?
我在 android 平台上使用 MuPDF 库。我想从 pdf 文件中提取文本。我有一个来自 Github 的示例,它正常显示 pdf 文件。
那么,是否可以使用 MuPDF 从 pdf 中提取文本并复制文本???
是的,您可以从 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;
}
我在 android 平台上使用 MuPDF 库。我想从 pdf 文件中提取文本。我有一个来自 Github 的示例,它正常显示 pdf 文件。
那么,是否可以使用 MuPDF 从 pdf 中提取文本并复制文本???
是的,您可以从 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;
}