Utilisez iTextSharp pour lire du contenu PDF dans une autre langue que l'anglais
Lors de l'utilisation d'iTextSharp en C# pour extraire du texte à partir de documents PDF, les utilisateurs peuvent rencontrer des problèmes si le contenu est dans une langue autre que l'anglais (comme le farsi ou l'arabe). Cela peut entraîner un texte tronqué car les méthodes de codage intégrées ne peuvent pas gérer ces jeux de caractères.
Pour résoudre ce problème, veillez à éviter d'effectuer des conversions d'encodage inutiles sur le texte obtenu à partir d'un PDF. Dans iTextSharp, la méthode PdfTextExtractor.GetTextFromPage()
extrait le texte brut d'une page PDF. La conversion vers Unicode doit être effectuée ultérieurement de manière contrôlée.
L'extrait de code fourni tente d'utiliser Encoding.UTF8
pour réencoder le texte, ce qui est une mauvaise approche. L'extrait de code simplifié suivant illustre l'approche correcte :
<code class="language-csharp">public string ReadPdfFileWithoutEncoding(string fileName) { StringBuilder text = new StringBuilder(); if (File.Exists(fileName)) { PdfReader pdfReader = new PdfReader(fileName); for (int page = 1; page <= pdfReader.NumberOfPages; page++) { text.Append(PdfTextExtractor.GetTextFromPage(pdfReader, page)); } pdfReader.Close(); } return text.ToString(); }</code>
Veuillez noter qu'il est important de vous assurer que votre application utilise la dernière version d'iTextSharp. Les anciennes versions peuvent avoir des limitations dans la gestion des textes non anglais. De plus, l'application chargée d'afficher le texte extrait doit prendre en charge les caractères Unicode.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!