Tl; Др: В IText, есть способ доступа имени шрифта, или выяснить язык шрифта, который был применен к фразе из FontSelector ?IText: Сравните шрифт после обработки строки, используя FontSelector
Этот вопрос в отношении вопроса, мы имели для printwikipedia project --- github - issue.
У меня есть текст с текстом, который я не могу контролировать при входе в FontSelector для обработки. Некоторые из этого текста на арабском языке, а некоторые на иврите, и я пытаюсь выяснить, лучший способ определения типа шрифта для того, чтобы он правильно печатать, как показано здесь: http://developers.itextpdf.com/question/how-create-persian-content-pdf с помощью
pdfCell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);
После запуская строки через FontSelector, чтобы они стали фразами, а затем помещали их в ячейку, отформатированную с кодом выше всего текста, заканчивающегося справа.
Форматирование этого текста очень важно, поэтому я не могу иметь весь текст, выровненный справа, но только тогда, когда он предназначен для чтения как справа налево. Поэтому я считаю, что лучший способ действий - обнаружить шрифт, который был применен к фразе, а затем, при необходимости, изменить ячейку.
public FontSelector fs = new FontSelector();
// add a whole lot of fonts to fs
// incoming line of some sort of text
Phrase ph = fs.process(line);
System.out.println(ph.getFont().toString());
Приведенный выше код выдаст некоторые чрезвычайно разнообразные результаты. Довольно много нового идентификатора для каждого шрифта, созданного для каждого фрагмента текста. Я не могу найти способ сравнить шрифт, который существует в объекте fontselector, с шрифтом, который был применен к входящему тексту.
Это лучший способ выяснить, какие шрифты есть в фразе?
Как получить доступ к имени шрифта или указать язык шрифта, который был применен к фразе из FontSelector?
Это о проекте печати Википедии? https://en.m.wikipedia.org/wiki/Print_Wikipedia –
@AmedeeVanGasse, да, действительно. – hachacha
Вижу, вы уже нашли ответ на свой вопрос. Но у меня есть вопрос для вас. Есть ли причина, по которой вы не используете последнюю версию iText (текущий - 5.5.8)? Я видел в репозитории, что вы используете 2.1.7. Большую часть времени, когда люди используют старую версию, это потому, что они хотят зарабатывать деньги с помощью iText в коммерческом программном обеспечении, но не хотят платить лицензию. Но Printwikipedia, похоже, не является коммерческим продуктом, по крайней мере, не частью программного обеспечения, поэтому версия iText AGPL может быть для вас вариантом. –