我正在尝试使用pdfbox库从PDF文件中提取所有字符的坐标。我使用了tutorialkart中的代码。但是当我执行代码时,坐标的提取从第2页开始,有时从第一页的中心开始。
我无法理解在pdfbox库中提取坐标的逻辑。 如果有人知道如何从所有页面中提取坐标,请帮助我。
以下是使用的代码..和输出快照...使用的PDF链接 - drive.google.com/open?id=1jPVcag8v8KDgWg_ziVO98sSb9qZV777p
public class Coordinates extends PDFTextStripper {
public Coordinates() throws IOException {
}
/**
* @throws IOException If there is an error parsing the document.
*/
public static void main( String[] args ) throws IOException {
PDDocument document = null;
String fileName = "C:\\Users\\Amul123\\Desktop\\Axis\\Axis\\A.pdf";
try {
document = PDDocument.load( new File(fileName) );
PDFTextStripper stripper = new Coordinates();
stripper.setSortByPosition( true );
stripper.setStartPage( 0 );
stripper.setEndPage( document.getNumberOfPages() );
Writer dummy = new OutputStreamWriter(new ByteArrayOutputStream());
stripper.writeText(document, dummy);
}
finally {
if( document != null ) {
document.close();
}
}
}
/**
* Override the default functionality of PDFTextStripper.writeString()
*/
@Override
protected void writeString(String string, List<TextPosition> textPositions) throws IOException {
for (TextPosition text : textPositions) {
System.out.println(text.getUnicode()+ " [(X=" + text.getXDirAdj() + ",Y=" +
text.getYDirAdj() + ") height=" + text.getHeightDir() + " width=" +
text.getWidthDirAdj() + "]");
}
}
}