2012-09-07 3 views
1

J'utilise PDFBox, avec succès pour récupérer des coordonnées de champ à partir de PDF. Passant à des fichiers PDF de plusieurs pages, je suis tombé sur la situation où je dois déterminer à partir de quelle page ces champs proviennent, et en plus de convertir les coordonnées de bas en haut à haut en bas. J'ai parcouru de nombreuses pages du doc ​​pour trouver une méthode qui fonctionnerait, la plupart retournerait null, ou échouerait, et il n'y aurait aucun résultat sur la recherche.PDFBox, BBox, numéro de page?

Que puis-je rechercher? Aperçu du document? BBbos? mediaBox? cropBox?

Et pour le numéro de page, quelques autres bibliothèques ont des méthodes simplement intitulées getCurrentPageNo(). Est-ce que je dois:

List allPages = document.getDocumentCatalog().getAllPages(); 
    for (int i = 0; i < allPages.size(); i++) { 
    // etc for each one? 
} 

Ceci est une telle capacité de base, je suis un peu surpris que je ne l'ai pas encore trouvé un exemple.

Répondre

1

Got it:

PDPage page = ......... 
PDRectangle mediaBox = page.getMediaBox(); 
System.out.println("Width:" + mediaBox.getWidth()); 
System.out.println("Height:" + mediaBox.getHeight()) 

pour le numéro de page:

page.getCOSDictionary().equals(page)) 
+0

Le dernier fragment "pour le numéro de page" est mal ou pas clair? Merci! –

+0

Ouais, il s'est avéré être faux, n'augmente jamais après la page 1. Toujours aucune idée. – jbrain

+0

Avez-vous besoin du "vrai" numéro de page - celui qui est imprimé sur la page, éventuellement non numérique - ou juste du numéro de page ordinal (1-n)? –