Dans cet article nous allons voir comment aligner un texte à droite avec PdfBox.
Pour rappel, PdfBox est une librairie OpenSource JAVA disponible à l’adresse suivante, supportée par Apache. Actuellement en version 1.8.6, cette librairie permet de créer facilement des PDF en JAVA.
L’objectif de cet article est d’arriver à:
Malheureusement le positionnement de texte avec PdfBox n’est 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 l’on souhaite positionner.
Un cas classique est l’alignement 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 d’utiliser 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 qu’il 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 l’espace allouée – l’espace du texte et ainsi le mettre correctement à droite!