2017-03-23 1 views
0

Mon LOGPDFBox-PDType1Font (Helvetica) apache encoder

exception java.lang.IllegalArgumentException: U + 0009 ('controlHT') ne sont pas disponibles dans cette police Helvetica (générique: ArialMT) encodage: WinAnsiEncoding ] avec des causes profondes java.lang.IllegalArgumentException: U + 0009 ('controlHT') ne sont pas disponibles dans cette police Helvetica (générique: ArialMT) encodage: WinAnsiEncoding

+0

Copie possible de [Qu'est-ce qu'une exception NullPointerException et comment la réparer?] (Http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix -it) – Matt

+0

Vous essayez simplement de dessiner un caractère pour lequel la police ne contient pas de glyphe. Dans votre cas, il s'agit d'un caractère de contrôle, l'onglet horizontal, pour lequel pratiquement aucune police n'a de glyphe. – mkl

+0

https://pdfbox.apache.org/2.0/faq.html#fontencoding –

Répondre

1

Le message d'exception

U + 0009 ('controlHT') est pas disponible dans cette police Helvetica (générique: ArialMT) encodage: WinAnsiEncoding

signifie que la chaîne vous dessinez contient un caractère pour lequel la police (en particulier dans son encodage sélectionné) fournit aucune instruction de dessin glyphe.

Il indique même quel caractère est le coupable: "U + 0009 ('controlHT')", c'est-à-dire un caractère de contrôle, l'onglet horizontal. En effet, les caractères de contrôle doivent être évités car presque aucune police ne contiendra de glyphes pour eux.

Comme vous l'avez déjà confirmé dans les commentaires à votre question

string.replaceAll("\t", " ") a bien fonctionné pour moi

onglets horizontaux semblent donc avoir été les seuls personnages de problème.

+0

jusqu'ici les onglets horizontaux qui causent les problèmes, mais je ne sais pas si string.replaceAll ("\ t", "") est la solution inactive que je dois vérifier chaque chaîne que je dessine dans le pdf .. –

+0

@marwn Eh bien, ce serait plus facile si vous pouviez vous assurer que la source que vous récupérez ces chaînes ne contient que des chaînes de caractères avec des caractères pouvant être dessinés. Comme vous n'avez pas indiqué d'où vous les obtenez, cependant, je ne peux pas deviner comment faire exactement cela. – mkl

+0

mes sources de chaîne sont extraites de la base de données, la plupart du temps ont été insérées à partir d'un formulaire .. –