Heim > Backend-Entwicklung > C++ > Wie kann ich mit iTextSharp nicht-englischen Text aus PDFs extrahieren und Kodierungsprobleme lösen?

Wie kann ich mit iTextSharp nicht-englischen Text aus PDFs extrahieren und Kodierungsprobleme lösen?

DDD
Freigeben: 2025-01-11 07:28:42
Original
243 Leute haben es durchsucht

How Can I Extract Non-English Text from PDFs using iTextSharp and Handle Encoding Issues?

Verwenden von iTextSharp in C# zum Extrahieren von PDF-Inhalten: Beheben von Problemen mit nicht-englischen Zeichen

Dieser Artikel befasst sich mit der Herausforderung, nicht-englischen Text aus PDF-Dateien mit iTextSharp in C# zu extrahieren. Das Problem äußert sich häufig in verstümmeltem Text, wenn es um Sprachen wie Persisch oder Arabisch geht.

Den Ursprung des Problems verstehen

Die Ursache liegt in einer unnötigen Kodierungskonvertierung:

<code class="language-csharp">currentText = Encoding.UTF8.GetString(Encoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.UTF8.GetBytes(currentText)));</code>
Nach dem Login kopieren

Dieser Code konvertiert den Text in ein UTF-8-Byte-Array und dann zurück in eine UTF-8-Zeichenfolge – ein redundanter Prozess, der versehentlich Zeichen außerhalb des grundlegenden ASCII-Bereichs (0-127) beschädigt.

Die Lösung: Vereinfachte Kodierung

Die Lösung ist einfach: Entfernen Sie den redundanten Codierungsschritt. Der korrigierte Code lautet:

<code class="language-csharp">public string ReadPdfFile(string fileName) {
    StringBuilder text = new StringBuilder();

    if (File.Exists(fileName)) {
        PdfReader pdfReader = new PdfReader(fileName);

        // ... (rest of the code remains unchanged) ...
    }
    return text.ToString();
}</code>
Nach dem Login kopieren

Weitere zu beachtende Punkte

Stellen Sie für eine ordnungsgemäße Anzeige sicher, dass die Rendering-Engine Ihrer Anwendung Unicode unterstützt. Für eine optimale Leistung wird die Verwendung der neuesten iTextSharp-Version (derzeit 5.2.0.0) empfohlen.

Rechts-nach-links-Text verarbeiten

Während der korrigierte Code Codierungsprobleme behebt, können Sprachen mit der Schreibrichtung von rechts nach links (wie Arabisch und Hebräisch) immer noch eine Herausforderung darstellen. Der extrahierte Text wird möglicherweise in der falschen Reihenfolge angezeigt. Dies scheint eine Einschränkung des PDF-Formats selbst zu sein und je nach Sprache kann eine manuelle Neuordnung erforderlich sein.

Das obige ist der detaillierte Inhalt vonWie kann ich mit iTextSharp nicht-englischen Text aus PDFs extrahieren und Kodierungsprobleme lösen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage