Heim >Backend-Entwicklung >C++ >Wie kann ich mit iTextSharp in C# nicht-englischen Text aus PDFs extrahieren, ohne dass die Ausgabe verstümmelt wird?
Verwenden Sie iTextSharp, um nicht-englische PDF-Inhalte zu lesen
Bei der Verwendung von iTextSharp in C# zum Extrahieren von Text aus PDF-Dokumenten können Benutzer auf Probleme stoßen, wenn der Inhalt in einer nicht englischen Sprache vorliegt (z. B. Farsi oder Arabisch). Dies kann zu verstümmeltem Text führen, da die integrierten Kodierungsmethoden diese Zeichensätze nicht verarbeiten können.
Um dieses Problem zu beheben, vermeiden Sie unbedingt unnötige Kodierungskonvertierungen für aus PDF erhaltenen Text. In iTextSharp extrahiert die Methode PdfTextExtractor.GetTextFromPage()
Rohtext aus einer PDF-Seite. Die Konvertierung nach Unicode sollte später kontrolliert erfolgen.
Das bereitgestellte Code-Snippet versucht, Encoding.UTF8
zu verwenden, um den Text neu zu kodieren, was der falsche Ansatz ist. Der folgende vereinfachte Codeausschnitt veranschaulicht den richtigen Ansatz:
<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>
Bitte beachten Sie, dass es wichtig ist, sicherzustellen, dass Ihre Anwendung die neueste Version von iTextSharp verwendet. Bei älteren Versionen kann es zu Einschränkungen bei der Verarbeitung nicht-englischer Texte kommen. Darüber hinaus muss die Anwendung, die für die Anzeige des extrahierten Textes verantwortlich ist, Unicode-Zeichen unterstützen.
Das obige ist der detaillierte Inhalt vonWie kann ich mit iTextSharp in C# nicht-englischen Text aus PDFs extrahieren, ohne dass die Ausgabe verstümmelt wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!