Je crée un PDF à partir d'iTextSharp pour l'impression. J'ai le texte de longueur variable que je voudrais toujours être dans la taille de police maximum pour remplir une cellule de table de taille fixe sans emballage hors de vue. Comment cela peut-il être fait?Comment ajuster la taille de la police pour remplir une cellule de table à hauteur fixe dans iTextSharp
Répondre
Vous devez commencer par mesurer la largeur de votre texte dans la police que vous avez choisie. De la documentation iTextSharp:
texte de mesure
Parfois, il est nécessaire de connaître la longueur d'un certain morceau de texte. Si vous avez créé un objet BaseFont, vous pouvez utiliser la méthode : public float getWidthPoint (String text, float fontSize); Donc, si vous utilisez une police de code à barres avec la taille 36 comme dans le exemple précédent et que vous voulez savoir combien d'espace dont vous avez besoin sur la ligne pour imprimer ce code à barres, vous faites juste: getWidthPoint («», 36f). Le résultat est la largeur en points. Il ya sont 72 points dans 1 pouce. Donc, si vous avez un résultat de 252 points (comme dans exemple 8), vous pouvez convertir en pouces et en centimètres comme ceci: 252 /72 = 3,5 pouces * 2,54 = 8,89 cm
Cela vous obtenez la largeur de votre chaîne avec la police que vous avez choisie par défaut. Vous pouvez ensuite utiliser la largeur fixe de votre cellule de tableau pour trouver la taille de police appropriée pour remplir la largeur de votre cellule sans emballage.
textWidth = getWidthPoint("sample text", originalFontHeight)
newFontHeight = (cellWidth/textWidth) * originalFontHeight
Ensuite, assurez-vous que la nouvelle hauteur de police (qui est déjà donnée en points par la taille de la police) ne dépasse pas la hauteur de votre cellule de table.
Super, merci beaucoup, c'était exactement ce que je cherchais. – DaveB