Android 如何使用iText提取特定文本而不是所有文本?
我试图不必要地提取这个词 但是当我提取整个文本时,我应该怎么做呢 我就是这样做的Android 如何使用iText提取特定文本而不是所有文本?,android,pdf,itext,text-extraction,Android,Pdf,Itext,Text Extraction,我试图不必要地提取这个词 但是当我提取整个文本时,我应该怎么做呢 我就是这样做的 String strfile = Environment.getExternalStorageDirectory() + "/pk.pdf"; StringBuilder sb = new StringBuilder(); PdfReader reader = null; try { reader = new PdfReader(strfile); } ca
String strfile = Environment.getExternalStorageDirectory() + "/pk.pdf";
StringBuilder sb = new StringBuilder();
PdfReader reader = null;
try {
reader = new PdfReader(strfile);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
for (int i = 1; i <= reader.getNumberOfPages(); i++) {
try {
// System.out.println(PdfTextExtractor.getTextFromPage(reader, i));
data = sb.append(PdfTextExtractor.getTextFromPage(reader, i));
System.out.println(data + "\n" + "PDF VERSION: " + reader.getPdfVersion()+ "\n" + "File Length: " + reader.getFileLength()+"\n"+"Info: "+reader.getInfo()+"\n"+"Require to Decrypt: " + reader.isEncrypted() + "\n" + "EOF: " + reader.getEofPos() + "\n" + reader.getLastXref());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return data;
这在设备上花费了太多的时间。所以我不想要整个文本?
这可能吗?如果您不知道搜索的文本在哪里,您必须浏览所有页面并检查它们是否包含有问题的文本。当然,您不需要像在StringBuilder sb中那样保留所有页面的所有文本:您可以首先检查从PdfTextExtractor.getTextFromPage返回的数据,并且仅在其中包含感兴趣的文本时保留它。是否有方法仅获取所需的字符而不是整个文本@mklYou可以创建一个自定义的TextExtractionStrategy,它只返回所需的文本部分。有一个pdftextractor.getTextFromPage重载,它接受显式的TextExtractionStrategy参数,而代码使用默认的LocationTextExtractionStrategy。您的TextExtractionStrategy替换可以在确定无法使用文本块时立即丢弃它们。