Ich verwende ITextpdf auf Java, um gestempelte PDFs zu generieren, manchmal ist das generierte PDF auf Arabisch und ich stehe vor einem komischen Problem. Um die arabische Seite von Right To Left (RTL) erstellen zu lassen, verwende ich Tabellen und Zellen, die die Eigenschaft PdfPCell.setRunDirection (PdfWriter.RUN_DIRECTION_RTL) haben. Wenn ich diese Eigenschaft verwende, zeigt Arabisch überhaupt nicht, wenn ich den Aufruf dieser Eigenschaft verbiete, werden arabische Zeichenfolgen richtig angezeigt, das heißt, ich sollte keine Probleme mit Schriftarten haben und ich weiß nicht wirklich, ob dies ein Problem mit IText oder I ist fehle nur etwas.ITextPdf: Drucken arabischer Strings von rechts nach links (RTL)
Hier ein kleiner Frieden von Code, der richtig eine arabische Zeichenfolge zeigt:
BaseFont bf = BaseFont.createFont(Application.getBASEPATH() + "fonts/arabic.ttf",BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
Font trebuchetSmaller = new Font(bf, 10, 0);
PdfPTable tbl = new PdfPTable(1);
PdfPCell cell = new PdfPCell();
Paragraph paragraph = new Paragraph();
paragraph.add(new Phrase("ربط صفحة على شبكة الإنترنت"), trebuchetSmaller));
cell.addElement(paragraph);
tbl.addCell(cell);
Hier ist die notwendige Veränderung, die die arabische Zeichenfolge verschwinden läßt:
BaseFont bf = BaseFont.createFont(Application.getBASEPATH() + "fonts/arabic.ttf",BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
Font trebuchetSmaller = new Font(bf, 10, 0);
PdfPTable tbl = new PdfPTable(1);
PdfPCell cell = new PdfPCell();
cell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);
Paragraph paragraph = new Paragraph();
paragraph.add(new Phrase("ربط صفحة على شبكة الإنترنت"), trebuchetSmaller));
cell.addElement(paragraph);
tbl.addCell(cell);
Wenn ich PdfWriter.RUN_DIRECTION_RTL mit einem verwenden Englisch string zeigt es richtig in dem Format, das es sein soll. Wenn ich eine Zeichenfolge mit gemischten englischen und arabischen Zeichen verwende, werden nur die englischen angezeigt.
Sie können Spannabe verwenden. [Es gibt mehr Informationen über sie] [1] [1]: http://stackoverflow.com/a/11612380/1278748 –
Schiftpakete ARIAL_FONT – shareef