我想阅读PDF中的特定部分。那怎么可能?例如:如果您访问URl:假设我只想获取第1部分的数据。
URL url = new URL("https://www.uscis.gov/sites/default/files/files/form/i-129.pdf");
InputStream is = url.openStream();
BufferedInputStream fileParse = new BufferedInputStream(is);
PDDocument document = null;
document = PDDocument.load(fileParse);
String pdfContent = new PDFTextStripper().getText(document);
System.out.println(pdfContent);
答案 0 :(得分:0)
在特定情况下,您可以设置剥离器的起始页和结束页,这样就不会每次都获得完整的文档,然后使用一些简单的字符串操作来获取所需的内容。
这是一个基于您的代码的完整,更通用的工作示例。
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
import java.io.BufferedInputStream;
import java.io.InputStream;
import java.net.URL;
public class App {
public static void main(String...args) throws Exception {
String path = "..."; // replace with whatever path you need
String startDelimiter = "..."; // replace with wherever the start is
String endDelimiter = "...";
URL url = new URL(path);
InputStream is = url.openStream();
BufferedInputStream fileParse = new BufferedInputStream(is);
PDDocument document = PDDocument.load(fileParse);
PDFTextStripper stripper = new PDFTextStripper();
// set this stuff if you know more or less where it should be in the pdf to avoid stripping the whole thing
stripper.setStartPage(1);
stripper.setEndPage(3);
// get the content
String content = stripper.getText(document);
String searchedContent = content.substring(content.indexOf(startDelimiter), content.indexOf(endDelimiter));
System.out.println(searchedContent);
}
}
如果另一方面,如果您不知道要查找的文档中的何处,则可以通过一些工作来搜索文档以获取起始页和结束页或其他内容。参见此similar question。