PDFBox – Aligner un texte à droite en JAVA

Dans cet article nous allons voir comment aligner un texte à droite avec PdfBox.
Pierre LISERONMis à jour le 26 Juin 2014

Dans cet article nous allons voir comment aligner un texte à droite avec PdfBox.

Pour rappel, PdfBox est une librairie OpenSource JAVA disponible à ladresse suivante, supportée par Apache. Actuellement en version 1.8.6, cette librairie permet de créer facilement des PDF en JAVA.

Lobjectif de cet article est darriver à: 

pdfbox-alignement-text.jpg

Malheureusement le positionnement de texte avec PdfBox nest pas forcement facile. En effet, il est souvent question de positionnement absolu, ce qui implique de calculer des tailles fixes pour chaque élément que lon souhaite positionner.

Un cas classique est lalignement du texte. Dans cet exemple, nous utilisons PdfBox pour générer une facture avec des montants. Généralement on affiche les montants alignés à droite avec deux chiffres après la virgule. Pour afficher les deux chiffres après la virgule, le plus simple est dutiliser NumberFormat.

NumberFormat formatter  = new DecimalFormat("##,##0.00 EUR");
String lText = formatter.format(lDevis.getOptionsTotal());

Une fois converti en String, il faut maintenant calculer la taille de la chaîne de caractère en fonction de la police. Pour ce faire, on utilise une méthode sur la police avec laquelle on va écrire le texte

PDFont mDefaultFont = PDType1Font.HELVETICA;
float textWidth = (mDefaultFont.getStringWidth(lText) / 1000) * mFontSize;

En utilisant la font, on peut calculer la taille en pt quil faut diviser par 1000 puis multiplier par la taille de la police, ici 10 pt. Ainsi on obtient la taille (float) du texte.

Une fois cette étape réalisée, on peut positionner son texte correctement en calculant lespace allouée lespace du texte et ainsi le mettre correctement à droite!