26

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

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

它是正确的还是有其他最好的方法来做到这一点。

4

7 回答 7

73

使用Paragraph#setAlignment(int)

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

查看接口中的ALIGN_*常量以Element获取更多可能的值。

于 2013-01-17T08:16:37.770 回答
6

不确定这是否是旧版本,但对于 PdfWriter 这些方法不存在。相反,我使用了:

Paragraph p = new Paragraph("This too shall pass");
p.Alignment = Element.ALIGN_CENTER;
于 2017-08-23T15:07:32.053 回答
5
 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();
}
于 2017-03-08T06:29:09.727 回答
5

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

例子:

Paragraph preface = new Paragraph();
// add text
preface.setTextAlignment(TextAlignment.CENTER);
于 2019-05-28T06:21:40.517 回答
3

如果有人在寻找 .NET/C# 版本,下面是我实现 CENTER 对齐的方法。

我正在为 .NET/C# 使用 iText7 库,我使用以下方法实现了这一点:

Paragraph preface = new Paragraph();
preface.SetTextAlignment(iText.Layout.Properties.TextAlignment.CENTER);
于 2016-09-26T06:37:22.990 回答
0

这对我有用(itext 5.0.5):

Paragraph p3= new Paragraph("Hello" );
  p3.setAlignment(Element.ALIGN_CENTER);
于 2020-01-02T13:13:30.650 回答
0

我已经为此搜索解决方案以将 PdfPCell 文本对齐到右侧和中心。修改和更改代码序列后,它就可以工作了。

此代码不适用于将文本对齐到中心。

              PdfPCell cell = new PdfPCell();
              cell.addElement(new Phrase("Testing Page");
              cell.setHorizontalAlignment(Element.ALIGN_CENTER);
              table.addCell(cell);

用 this 修改代码后,它现在可以工作了。

              Paragraph p = new Paragraph("Testing Page");
              //Pass Paragraph object into PdfPCell 
              PdfPCell cell = new PdfPCell(p);
              cell.setHorizontalAlignment(Element.ALIGN_CENTER);
              table.addCell(cell);
于 2020-10-15T09:36:42.597 回答