Codage du jeu lors de la conversion de fichier texte au format pdf avec itext
Je suis en train de travailler sur l'obtention de la bibliothèque itext à la sortie de mon texte UTF-8 correctement, en fait, le fichier d'entrée contient les symboles ° et Latin, caractères (é,è,à...) .
Mais je n'ai pas trouver une solution, c'est le code que j'utilise :
BufferedReader input = null;
Document output = null;
System.out.println("Convert text file to pdf");
System.out.println("input : " + args[0]);
System.out.println("output : " + args[1]);
try {
//text file to convert to pdf as args[0]
input =
new BufferedReader (new FileReader(args[0]));
//letter 8.5x11
// see com.lowagie.text.PageSize for a complete list of page-size constants.
output = new Document(PageSize.LETTER, 40, 40, 40, 40);
//pdf file as args[1]
PdfWriter.getInstance(output, new FileOutputStream (args[1]));
output.open();
output.addAuthor("RealHowTo");
output.addSubject(args[0]);
output.addTitle(args[0]);
BaseFont courier = BaseFont.createFont(BaseFont.COURIER, BaseFont.CP1252, BaseFont.EMBEDDED);
Font font = new Font(courier, 12, Font.NORMAL);
Chunk chunk = new Chunk("",font);
output.add(chunk);
String line = "";
while(null != (line = input.readLine())) {
System.out.println(line);
Paragraph p = new Paragraph(line);
p.setAlignment(Element.ALIGN_JUSTIFIED);
output.add(p);
}
System.out.println("Done.");
output.close();
input.close();
System.exit(0);
}
catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
Toute idée sera appréciée.
Vous utilisez
BaseFont.COURIER
avec BaseFont.CP1252
encodage. Avez-vous vérifié si la norme 14 police Courier contient tous vos personnages? Et si elles se produisent sur la page de code 1252?
OriginalL'auteur Amira | 2014-01-21
Vous devez vous connecter pour publier un commentaire.
Quand je regarde ton code, je vois un certain nombre de choses qui sont bizarres.
BaseFont
objet à l'aide deBaseFont.CP1252
au lieu deBaseFont.IDENTITY_H
(qui est le "codage" dont vous avez besoin lorsque vous travaillez avec Unicode).BaseFont.EMBEDDED
paramètre est ignoré dans ce cas!Paragraph
qui est créé à l'aide de la police par défaut "Helvetica", une police qui ne sait pas comment rendre é,è,à...Pour résoudre ce problème, vous devez créer le
Paragraph
avec la police appropriée. C'est PAS un standard de la police type 1, mais quelque chose commecourier.ttf
. Vous devez également utiliser le codage approprié:BaseFont.IDENTITY_H
.comme cette liste.add(new ListItem("யுத்தத்திலும் ப்ரனயதிலும் நியமங்கள் நோக்கில்லா \n\nபோரிலும் காதலிலும் சட்டங்களை நோக்க கூடாது")); document.ajouter(liste);
Mais dans le PDF, je suis seul comme ça '________\n\n ______' .. Pourquoi? (pense __ comme des espaces parce que Stackoverflow pas soutenir de longs espaces )
Vous devez utiliser la bibliothèque iText 7 si vous avez besoin d'aide pour l'Hindi, Kannada, le Tamoul, le Télougou,... iText 5 ne prend pas en charge les langues Indo-aryennes. Vous avez également besoin d'pdfCalligraph add-on pour traiter les langues Indo-aryennes. Lire la documentation sur le site web. Note: le support pour les langues Indiennes est closed source, nous n'offrons pas de support pour les langues dans l'open source.
Je n'ai pas le temps de répondre à toutes vos questions @RageshDAntony Si vous allez sur le site web, vous pouvez télécharger une version d'essai de pdfCalligraph de notre code source fermé Maveb référentiel. Vous pouvez également télécharger un livre blanc contenant plusieurs exemples. Pourquoi avez-vous besoin de quelqu'un pour le sort de tout pour vous?
OriginalL'auteur Bruno Lowagie
À la fois le lecteur et l'écrivain doit être configuré pour utiliser UTF-8 codage du jeu de caractères à lire/écrire les caractères UTF-8 correctement. Par exemple,
pouvez vous s'il vous plaît vérifier également si la BaseFont vous utilisez prend en charge les caractères que vous essayez de sortie?
OriginalL'auteur Ivey
@AmiraGL,
La solution proposée par Bruno Lowagie corrigé(p:dataExporter PDF export ne montrent pas l'Euro (€) signe) mon problème. Il se peut que résout également votre.
Solution: https://stackoverflow.com/a/21259711/3557631
OriginalL'auteur João Zarate