在页面的中心对齐段落(Align Paragraph at the center of the pa

2019-07-18 08:08发布

我使用的iText生成PDF文件。 我想我的对齐标题在页面的中间。 目前我使用这样的

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

它是正确的还是有这样做的任何其他最佳途径。

Answer 1:

使用Paragraph#setAlignment(int)

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

ALIGN_*常量的Element接口,更可能的值。



Answer 2:

如果任何一个正在寻找.NET / C#版本,下面是我如何实现居中对齐。

我使用iText7库.NET / C#和我这个使用来实现:

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


Answer 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();
}


Answer 4:

不知道这是一个老的版本,但对于PdfWriter这些方法都没有了。 相反,我用:

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


Answer 5:

如果你正在寻找一个解决方案,Itext7那么你可以使用的方法setTextAlignment(...)

例:

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


文章来源: Align Paragraph at the center of the page
标签: java pdf itext