Recherche sur le blog

vendredi 8 janvier 2016

[Java] Parser alternatif avec PDFBox 1.8

Dans les versions de PDFBox 1.8, un parser "non-séquentiel" a été mis en place, mais celui-ci n'est pas utilisé par défaut. Ainsi, au lieu d'utiliser la fonction "load()", comme expliqué dans le billet du 26 mai 2015, on peut utiliser "loadNonSeq()" pour charger le document PDF. En fait cela est vivement recommandé, d'après ce qu'on lit un peu partout sur internet. Dans mon cas, j'obtenais une erreur "incorrect header check" lorsque j'utilisais l'ancien parser pour certains fichiers. En utilisant la seconde fonction ci-dessus, j'ai pu régler le problème. Exemple :
 try
    (PDDocument document = PDDocument.loadNonSeq(f,null)) {
       document.silentPrint(printJob);
 }
Lors de l'exécution, j'ai rencontré une petite erreur de classe non trouvée ; la classe mentionnée était en lien avec Bouncy Castle. En effet, PDFBox utilise les algorithmes de cryptage et décryptage de ces librairies plutôt que d'en implémenter de nouvelles. S'il vous manque autre chose, consultez la page "dependencies".

Dans la version 2, le nouveau parser remplace complètement l'ancien.

Aucun commentaire: