Выровнять абзац в центре страницы - программирование
Подтвердить что ты не робот

Выровнять абзац в центре страницы

Я использую itext для создания pdf файла. Я хочу выровнять свой заголовок в середине страницы. В настоящее время я использую как это

Paragraph preface = new Paragraph();  
for (int i = 0; i < 10; i++) {
    preface.add(new Paragraph(" "));
}

Правильно это или есть другой лучший способ сделать это.

4b9b3361

Ответ 1

Используйте Paragraph#setAlignment(int):

Paragraph preface = new Paragraph(); 
preface.setAlignment(Element.ALIGN_CENTER);

См. константы ALIGN_* в Element для более возможных значений.

Ответ 2

Если кто-то ищет версию .NET/С#, ниже показано, как я достиг выравнивания CENTER.

Я использую библиотеку iText7 для .NET/С#, и я достиг этого, используя:

Paragraph preface = new Paragraph();
preface.SetTextAlignment(iText.Layout.Properties.TextAlignment.CENTER);

Ответ 3

 public static final String DEST = "results/tables/centered_text.pdf";


public static void main(String[] args) throws IOException, DocumentException {
    File file = new File(DEST);
    file.getParentFile().mkdirs();
    new CenteredTextInCell().createPdf(DEST);
}

public void createPdf(String dest) throws IOException, DocumentException {
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream(dest));
    document.open();
    Font font = new Font(FontFamily.HELVETICA, 12, Font.BOLD);
    Paragraph para = new Paragraph("Test", font);
    para.setLeading(0, 1);
    PdfPTable table = new PdfPTable(1);
    table.setWidthPercentage(100);
    PdfPCell cell = new PdfPCell();
    cell.setMinimumHeight(50);
    cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
    cell.addElement(para);
    table.addCell(cell);
    document.add(table);
    document.close();
}

Ответ 4

Не уверен, что это старая версия, но для PdfWriter этих методов не было. Вместо этого я использовал:

Paragraph p = new Paragraph("This too shall pass");
p.Alignment = Element.ALIGN_CENTER;

Ответ 5

Если вы ищете решение для Itext7, вы можете использовать метод setTextAlignment(...).

Пример:

Paragraph preface = new Paragraph();
// add text
preface.setTextAlignment(TextAlignment.CENTER);