【问题标题】:Align Paragraph at the center of the page在页面中心对齐段落
【发布时间】:2012-12-31 15:34:40
【问题描述】:

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

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

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

【问题讨论】:

    标签: java pdf itext


    【解决方案1】:

    使用Paragraph#setAlignment(int)

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

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

    【讨论】:

      【解决方案2】:

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

      Paragraph p = new Paragraph("This too shall pass");
      p.Alignment = Element.ALIGN_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();
        }
        

        【讨论】:

        • 与公认答案中更简单的解决方案相比,您的解决方案有什么优势?
        • “以下行没有真正意义:p1.setAlignment(Element.TABLE) - 我在任何地方都看不到该代码,无论是在问题中还是在任何答案中。
        • 您使用的 iText 版本非常非常旧。以下行没有真正意义:preface.setAlignment(Element.ALIGN_CENTER);所以使用这个方法而不是旧的 itext 版本 cell.setVerticalAlignment(Element.ALIGN_MIDDLE);这种方法更快更好
        • Paragraph.setAlignment 仍然存在于最新的 iText 5.5.x 版本中,您的代码绝对不能声称是 iText 7 代码。那么,为什么您声称我使用的是非常非常旧 的 iText 版本?此外,我没有为这些方法计时,所以我不能说你声称你的方法更快是错误的。但根据你的说法,它更好
        【解决方案4】:

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

        例子:

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

        【讨论】:

          【解决方案5】:

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

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

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

          【讨论】:

            【解决方案6】:

            这对我有用(itext 5.0.5):

            Paragraph p3= new Paragraph("Hello" );
              p3.setAlignment(Element.ALIGN_CENTER);
            

            【讨论】:

              【解决方案7】:

              我已为此搜索解决方案,以将 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);
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2016-11-25
                • 1970-01-01
                • 2017-01-10
                • 1970-01-01
                • 2012-02-15
                • 2019-10-14
                • 1970-01-01
                相关资源
                最近更新 更多