Я изменил несколько деталей вашего кода, и теперь я получаю это:
![screen shot](https://i.stack.imgur.com/gvmxy.png)
Мои изменения:
Встраиваниешрифт
Поскольку в моей системе не установлен Rubik, я должен встроить шрифт в PDF, чтобы иметь возможность что-либо увидеть.Таким образом, я заменил BaseFont.NOT_EMBEDDED
на BaseFont.EMBEDDED
при создании var font
:
var font = new Font(BaseFont.CreateFont("Rubik-Light.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED), 14);
Создание вида работы Paragraph
Вы создаете Paragraph p
без указанияшрифт.Таким образом, используется шрифт по умолчанию с кодировкой по умолчанию.Кодировка по умолчанию - WinAnsiEncoding , которая похожа на Latin1, поэтому иврит не может быть представлен.Я добавил ваш экземпляр шрифта Rubik в Paragraph p
создание:
Paragraph p = new Paragraph("פסקת פתיחה", font)
{
Alignment = Element.ALIGN_RIGHT
};
Et voilà, надпись появляется.
Разработчики iText часто сообщают, что в iText 5.x иболее ранние сценарии с написанием справа налево правильно поддерживаются только в определенных контекстах, например, в таблицах, но не в других, таких как абзацы, сразу добавляемые в документ.Поскольку ваш Paragraph p
сразу добавляется к Document document
, его буквы появляются в неправильном порядке в выводе.
Как заставить PdfPTable
работать
Вы определили PdfPTable table
, чтобы иметь два столбца (new PdfPTable(2)
), но затем вы добавили только одну ячейку.Таким образом, table
не содержит даже ни одной полной строки.Поэтому при добавлении в документ iText ничего не рисует.
Я изменил определение table
, чтобы он содержал только один столбец:
PdfPTable table = new PdfPTable(1)
{
RunDirection = PdfWriter.RUN_DIRECTION_RTL
};
Более того, я закомментироваллиния, устанавливающая черный цвет фона ячейки, потому что обычно трудно прочитать черное на черном:
PdfPCell cell = new PdfPCell(new Phrase("מזהה", font));
//cell.BackgroundColor = BaseColor.BLACK;
table.AddCell(cell);
И снова появляется надпись.
Правильная загрузка шрифта
ДругойВозможное препятствие заключается в том, что при загрузке шрифта с заданного вами URL - https://fonts.google.com/selection?selection.family=Rubik - на вкладке настройки ящика выбора можно увидеть, что по умолчанию в загрузку включены только латинские символы, в частности не ивритские:
![Screenshot](https://i.stack.imgur.com/6HY5o.png)
Я проверил файл шрифта, загруженный со всеми включенными языковыми опциями:
![Screenshot, all selected](https://i.stack.imgur.com/4WmrE.png)