Пожалуйста, попробуйте метод setTextAlignment:
Paragraph paragraph1 = new Paragraph(str1);
paragraph1.setTextAlignment(TextAlignment.RIGHT);
document.add(paragraph1);
Важно отметить, что методы setHorizontAlignment и setTextAlignment имеют разные цели. Первый касается размещения самого абзаца (как элемента), а второй - размещения его содержимого.
Чтобы увидеть разницу, можно установить ширину абзаца и добавить этот абзац к элементу div.
Я создал небольшой тест, чтобы продемонстрировать это:
PdfDocument pdfDocument = new PdfDocument(new PdfWriter(outFileName));
Document document = new Document(pdfDocument);
Div div = new Div()
.setWidth(500)
.setBackgroundColor(ColorConstants.YELLOW);
Paragraph paragraph = new Paragraph("Hello World!")
.setTextAlignment(TextAlignment.CENTER)
.setHorizontalAlignment(HorizontalAlignment.RIGHT)
.setWidth(300)
.setBackgroundColor(ColorConstants.BLUE);
div.add(paragraph);
document.add(div);
Как вы можете видеть, здесь я создал абзац с горизонтальным выравниванием, установленным как ПРАВО, и текстовым выравниванием, установленным как ЦЕНТР.
Результат выглядит следующим образом: