【问题标题】:some part of text left aligned and other right aligned in same line in itext文本的某些部分左对齐,其他部分右对齐在 itext 的同一行中
【发布时间】:2014-07-11 06:32:31
【问题描述】:

我想创建一个 pdf,其名称和联系电话左对齐,电子邮件右对齐,与 itext 中的名称在同一行。我该如何实施?我应该使用矩形方法吗?如果是,那么应该为其参数分配什么值以将它们放在同一行?

【问题讨论】:

  • 您可以使用具有 2 列的表格来执行此操作。
  • @Jens 有没有办法隐藏它的边框线并将其扩展为页面大小?
  • 是的,您可以从单元格设置边框属性:cell.setBorder(Rectangle.NO_BORDER);,您可以设置表格宽度table.setWidthPercentage(100);
  • 这对我有用.. 谢谢:)

标签: java pdf pdf-generation itext


【解决方案1】:

使用 pdfTable 在同一行中获取左右所有文本。以下是您可以遵循的方法。

 Document document = new Document(PageSize.A4, 30, 30, 150, 50);     
    FileOutputStream fos = new FileOutputStream("filepath");
    PdfWriter writer = PdfWriter.getInstance(document,fos );
    document.open();

    Rectangle rect = writer.getPageSize();

    float[] columnWidths = {2f, 1f,2.5f};
    PdfPTable table = new PdfPTable(columnWidths);
    table.setTotalWidth(527);
    table.getDefaultCell().setBorder(Rectangle.NO_BORDER);
    table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);
    table.addCell("abc left");
    table.addCell("");
    table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT);
    table.addCell("abc right");

    table.writeSelectedRows(
                        0, -1, rect.getLeft(30), rect.getTop(20), writer.getDirectContent());
    document.close();

【讨论】:

    【解决方案2】:

    您可以使用具有 2 列的表格来执行此操作。

    要将边框设置为不可见,请使用 :cell.setBorder(Rectangle.NO_BORDER); 并将表格宽度设置为 100% 使用:table.setWidthPercentage(100);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-26
      • 1970-01-01
      • 1970-01-01
      • 2014-01-02
      • 1970-01-01
      • 1970-01-01
      • 2021-05-08
      • 2011-06-28
      相关资源
      最近更新 更多