Afficher les caractères Unicode dans la conversion Html vers Pdf
Je suis en utilisant itextsharp dll pour convertir HTML en PDF.
Le HTML a certains caractères Unicode comme α, β... quand j'essaie de convertir du HTML en PDF, des caractères Unicode ne sont pas affichés en format PDF.
Ma fonction:
Document doc = new Document(PageSize.LETTER);
using (FileStream fs = new FileStream(Path.Combine("Test.pdf"), FileMode.Create, FileAccess.Write, FileShare.Read))
{
PdfWriter.GetInstance(doc, fs);
doc.Open();
doc.NewPage();
string arialuniTff = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts),
"ARIALUNI.TTF");
BaseFont bf = BaseFont.CreateFont(arialuniTff, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
Font fontNormal = new Font(bf, 12, Font.NORMAL);
List<IElement> list = HTMLWorker.ParseToList(new StringReader(stringBuilder.ToString()),
new StyleSheet());
Paragraph p = new Paragraph {Font = fontNormal};
foreach (var element in list)
{
p.Add(element);
doc.Add(p);
}
doc.Close();
}
OriginalL'auteur NIlesh Lanke | 2012-04-26
Vous devez vous connecter pour publier un commentaire.
Lorsque vous traitez avec les caractères Unicode et iTextSharp il ya un couple de choses que vous devez prendre soin de. Le premier que vous avez déjà et où il y a une police qui prend en charge vos personnages. La deuxième chose, c'est que vous souhaitez réellement registre de la police avec iTextSharp de sorte que sa conscience.
Maintenant que nous avons une police nous avons besoin de créer un
StyleSheet
objet qui raconte iTextSharp quand et comment l'utiliser.Une non-partie HTML que vous aussi vous devez faire est de définir un spécial
encoding
paramètre. Ce codage est spécifique à iTextSharp et dans votre cas, vous voulez qu'il soitIdentity-H
. Si vous ne définissez pas ce alors par défautCp1252
(WINANSI
).Enfin, nous devons passer notre feuille de style à la
ParseToList
méthode:Ensemble, de l'ouverture à la fermer, vous avez de l':
MODIFIER
Dans votre commentaire vous montrer le code HTML qui indique une substitution de police. iTextSharp n'a pas d'araignée le système pour les polices et son analyseur HTML n'utilisez pas de polices techniques de secours. Les polices de caractères spécifié dans le HTML/CSS doit être enregistré manuellement.
Cela m'a aidé beaucoup. J'ai déjà eu une feuille de style de l'installation donc j'ai simplement eu à définir la police dans le css... body { font-family: 'Arial Unicode MS'!important; }
OriginalL'auteur Chris Haas
Vous pouvez également utiliser la nouvelle XMLWorkerHelper (à partir de la bibliothèque itextsharp.xmlworker), vous devez remplacer la valeur par défaut FontFactory mise en œuvre.
J'ai essayé mais toujours pas rendu de mots chinois.
après la mise à niveau à 5.5.5 et de l'utilisation de Microsoft Yasei avant,il fonctionne correctement maintenant.
OriginalL'auteur Gregor Slavec
//et le Code
OriginalL'auteur Milan Hettner
C'est l'un des problèmes les plus difficiles que j'ai dû comprendre à ce jour. Les réponses sur le web, y compris un débordement de pile a des pauvres ou des informations périmées. La réponse de Gregor est très proche. Je voulais donner en retour à cette communauté, car j'ai passé de nombreuses heures pour arriver à cette réponse.
Voici un programme très simple que j'ai écrit en c# comme un exemple pour mes propres notes.
J'espère que cela va sauver quelqu'un certain temps dans l'avenir.
OriginalL'auteur Frank Thomas
Voici les quelques étapes pour afficher les caractères unicode dans la conversion Html vers Pdf
Découvrez ci-dessous le lien pour plus de compréhension....
Hindi, turc, et les caractères spéciaux sont également afficher lors de la conversion en HTML au format PDF à l'aide de cette méthode. Découvrez ci-dessous la démo de l'image.
OriginalL'auteur Code Scratcher