无法使用java剥离pdf中的页面行

无法使用java剥离pdf中的页面行,java,pdf,pdfbox,Java,Pdf,Pdfbox,我想剥离第1页和第3页,但为什么只剥离第1页并显示相同的输出两次。我在这里使用pdfbox。即使我以剥离器的身份编写了第3页,它也无法剥离。setStartPage(3) import org.apache.pdfbox.pdmodel.PDDocument; 导入org.apache.pdfbox.text.PDFTextStripper; 导入org.apache.pdfbox.text.TextPosition; 导入java.io.ByteArrayOutputStream; 导入jav

我想剥离第1页和第3页,但为什么只剥离第1页并显示相同的输出两次。我在这里使用pdfbox。即使我以剥离器的身份编写了第3页,它也无法剥离。setStartPage(3)

import org.apache.pdfbox.pdmodel.PDDocument;
导入org.apache.pdfbox.text.PDFTextStripper;
导入org.apache.pdfbox.text.TextPosition;
导入java.io.ByteArrayOutputStream;
导入java.io.File;
导入java.io.IOException;
导入java.io.OutputStreamWriter;
导入java.io.Writer;
导入java.util.ArrayList;
导入java.util.List;
公共类GetlinesFromPDF扩展PDFTextStripper{
静态列表行=新的ArrayList();
公共GetlinesFromPDF()引发IOException{
}
公共静态void main(字符串[]args)引发IOException{
PDDocument文件=null;
String fileName=“C://Users//policy.pdf”;
试一试{
document=PDDocument.load(新文件(文件名));
PDFTextStripper stripper=new GetlinesFromPDF();
脱扣器。设置端口BYPOSITION(真);
剥离器。设置开始页(1);
剥离器。设置结束页(1);
Writer dummy=newoutputstreamwriter(newbytearrayoutputstream());
stripper.writeText(文档,虚拟);
字符串qoute_number=lines.get(2);
系统输出打印项次(qoute_编号);
剥离器。设置开始页(3);
剥离器。设置结束页(3);
Writer dummy1=新的输出流Writer(new ByteArrayOutputStream());
stripper.writeText(文档,dummy1);
字符串qoute_number1=lines.get(2);
系统输出打印号(qoute_编号1);
}
最后{
如果(文档!=null){
document.close();
}
}
}
@凌驾
受保护的void writeString(字符串str、列表textPositions)引发IOException{
行。添加(str);
}}

剥离效果非常好。您的问题是,
会添加所有结果-剥离第一页和第三页。因此,打印出相同的索引(
get(2)
)总是包含第一页的内容。如果在两个剥离之间添加clear调用,应该会看到正确的结果

stripper.setStartPage( 1 );
stripper.setEndPage( 1);
Writer dummy = new OutputStreamWriter(new ByteArrayOutputStream());
stripper.writeText(document, dummy);
String qoute_number = lines.get(2);
System.out.println(qoute_number);

lines.clear();

stripper.setStartPage( 3 );
stripper.setEndPage( 3);

剥皮效果很好。您的问题是,
会添加所有结果-剥离第一页和第三页。因此,打印出相同的索引(
get(2)
)总是包含第一页的内容。如果在两个剥离之间添加clear调用,应该会看到正确的结果

stripper.setStartPage( 1 );
stripper.setEndPage( 1);
Writer dummy = new OutputStreamWriter(new ByteArrayOutputStream());
stripper.writeText(document, dummy);
String qoute_number = lines.get(2);
System.out.println(qoute_number);

lines.clear();

stripper.setStartPage( 3 );
stripper.setEndPage( 3);

这张单子是什么。。它表示无法从类型列表中对非静态方法clear()进行静态引用此列表是什么。。它无法从类型列表中对非静态方法clear()进行静态引用