Я использую ITEXTPDF на Java, чтобы генерировать штампованные PDF, иногда сгенерированный PDF находится на арабском языке, и я сталкиваюсь с забавной проблемой.
Чтобы арабская страница создавалась из правой налево (RTL), я использую таблицы и клетки, которые имеют свойство pdfpcell.setrunderection (pdfwriter.run_dired_rtlection_dritrection. Когда я использую это свойство, арабский, вообще не показывается, если я избегаю призыв к этому свойству, арабские струны отображаются, это означает, что у меня не должно быть проблем с шрифтами, и я действительно не знаю, является ли это проблемой с Itext, или я просто что -то упускаю.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);
< /code>
Здесь необходимое изменение, которое заставляет арабскую строку исчезать: < /p>
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);
< /code>
Если я использую pdfwriter.run_direction_rtl < /code> с английской строкой, она правильно отображается в формате, в котором он должен был быть. Если я использую строку со смешанными английскими и арабскими персонажами, только английские показаны.
Подробнее здесь: https://stackoverflow.com/questions/101 ... o-left-rtl
ITEXTPDF: печать арабских струн справа налево (RTL) ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение