/** * Qoppa Software - Sample Source Code */ package jPDFTextSamples; import java.awt.geom.Point2D; import java.text.DecimalFormat; import java.util.Vector; import com.qoppa.pdf.TextPosition; import com.qoppa.pdfText.PDFText; public class GetWordsAndPositions extends ExtractTextByPage { public static void main (String [] args) { try { // Load the document PDFText pdfText = new PDFText ("input.pdf", null); // Loop through the pages for (int pageIx = 0; pageIx < pdfText.getPageCount(); ++pageIx) { // Echo page number System.out.println ("\n***** Page " + pageIx + " *****\n"); // Get the words in the page and their position Vector wordList = pdfText.getWordsWithPositions(pageIx); // Echo each of the words in the document for (int wordIx = 0; wordIx < wordList.size(); ++wordIx) { // Echo the word information TextPosition tp = (TextPosition)wordList.get(wordIx); System.out.println (tp.getText() + " - " + echoQuad (tp.getQuadrilateral())); } } } catch (Throwable t) { t.printStackTrace(); } } private static String echoQuad (Point2D [] quadPoints) { DecimalFormat decFormat = new DecimalFormat ("0.00"); StringBuffer quadString = new StringBuffer(); quadString.append (decFormat.format(quadPoints [0].getX()) + "," + decFormat.format(quadPoints [0].getY())); quadString.append (" to "); quadString.append (decFormat.format(quadPoints [1].getX()) + "," + decFormat.format(quadPoints [1].getY())); quadString.append (" to "); quadString.append (decFormat.format(quadPoints [2].getX()) + "," + decFormat.format(quadPoints [2].getY())); quadString.append (" to "); quadString.append (decFormat.format(quadPoints [3].getX()) + "," + decFormat.format(quadPoints [3].getY())); return quadString.toString(); } }