При установке TextAlignment.JUSTIFIED последняя строка не выровнена, что является правильным. Однако для текста на языке справа налево, например на иврите, последняя строка выравнивается по левому краю, а не по правому.
Как видно из кода, я попытался установить различные свойства объекта Document, ни одно из которых не оказало влияния на проблему.
Вот пример файла PDF
String path = "C:\\Users\\davidz\\Desktop\\verylittle.pdf";
PdfWriter writer = new PdfWriter(new FileOutputStream(path));
PdfDocument pdf = new PdfDocument(writer);
pdf.addNewPage();
Document doc = new Document(pdf);
doc.setBaseDirection(BaseDirection.RIGHT_TO_LEFT);
doc.setTextAlignment(TextAlignment.RIGHT);
doc.setHorizontalAlignment(HorizontalAlignment.RIGHT);
JavaItext.loadLicenses("\\\\formit7\\e$\\formit\\ConvertIT\\Resources\\Fonts");
GetFonts fontbank = new GetFonts("C:\\Users\\davidz\\Desktop\\fonts");
PdfFont sanserif = fontbank.getFont("Arial", true);
String hebrew = "כל עוד בלבב פנימה נפש יהודי הומיה ולפאתי מזרח קדימה עין לציון צופיה עוד לא אבדה תקותנו";
Paragraph p = new Paragraph(hebrew);
p.setFont(sanserif);
p.setWidth(180);
p.setBorder(new SolidBorder(1));
p.setTextAlignment(TextAlignment.JUSTIFIED);
p.setFixedLeading(12f);
p.setHeight(50f);
doc.add(p);
doc.close();
pdf.close();