iTextSharp PDF: Umgang mit mittel- und osteuropäischen Zeichen
Diese Anleitung befasst sich mit dem häufigen Problem der falschen Anzeige mittel- und osteuropäischer Zeichen (z. B. „Č“, „Ć“) in PDFs, die mit iTextSharp generiert wurden.
Das Problem: Das Generieren von PDFs mit diesen Zeichen führt häufig zu Darstellungsfehlern.
Ursachen: Mehrere Faktoren können dies verursachen:
Die Lösung: Ein schrittweiser Ansatz
Genaue Codepage-Auswahl:Verwenden Sie die richtige Codepage für die jeweilige Sprache und den richtigen Zeichensatz (z. B. „Cp1250“ für Tschechisch).
Unicode-Escape-Sequenzen:Anstatt wörtliche Sonderzeichen zu verwenden, verwenden Sie Unicode-Escape-Sequenzen für eine konsistente Codierungsbehandlung.
Glyphenunterstützende Schriftart: Wählen Sie eine Schriftart (wie Arial.ttf oder FreeSans.ttf), die die erforderlichen Glyphen enthält.
Einbettung von Schriftarten: Stellen Sie sicher, dass die Schriftart in das PDF eingebettet ist (setzen Sie den Parameter „eingebettet“ auf true
), um eine korrekte Anzeige zu gewährleisten, auch wenn die Schriftart auf dem System des Empfängers nicht verfügbar ist.
Definition der Schriftartenkodierung: Definieren Sie explizit die für die Glypheninterpretation verwendete Kodierung. Zu den Optionen gehören die Angabe der Codepage oder die Verwendung von Unicode für horizontales Schreiben (z. B. „Cp1250“, BaseFont.IDENTITY_H
).
Codebeispiel (anschaulich):
<code class="language-csharp">using iTextSharp.text; using iTextSharp.text.pdf; public class CEECharacterExample { public void CreatePdf(string destination) { Document document = new Document(); PdfWriter.GetInstance(document, new FileOutputStream(destination)); document.Open(); // Font with glyph support and code page Font fontCp1250 = FontFactory.GetFont("resources/fonts/FreeSans.ttf", "Cp1250", true); // Font with Unicode encoding Font fontUnicode = FontFactory.GetFont("resources/fonts/FreeSans.ttf", BaseFont.IDENTITY_H, true); // Paragraphs using different encodings Paragraph paragraphCp1250 = new Paragraph("Testing characters: \u010c, \u0106, \u0160, \u017d, \u0110", fontCp1250); Paragraph paragraphUnicode = new Paragraph("Testing characters: \u010c, \u0106, \u0160, \u017d, \u0110", fontUnicode); // Add paragraphs to the document document.Add(paragraphCp1250); document.Add(paragraphUnicode); document.Close(); } }</code>
Durch die Implementierung dieser Schritte sollten Sie die Probleme mit der Zeichenanzeige in Ihren iTextSharp-PDFs beheben. Denken Sie daran, "resources/fonts/FreeSans.ttf"
durch den tatsächlichen Pfad zu Ihrer Schriftartdatei zu ersetzen.
Das obige ist der detaillierte Inhalt vonWie werden mittel- und osteuropäische Zeichen in iTextSharp-PDFs korrekt angezeigt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!