【问题标题】:itextsharp columntext overlapping with tableitextsharp columntext 与表格重叠
【发布时间】:2013-09-27 17:24:20
【问题描述】:

我有一个列在 pdftable 之前的文本,如何阻止这两个元素重叠?

ColumnText addressHeader = new ColumnText(cb);
Phrase addressText = new Phrase("Lorem ipsum");
addressHeader.SetSimpleColumn(addressText, 34, 750, 580, 317, 15, Element.ALIGN_LEFT);
addressHeader.FollowingIndent = 10f;
addressHeader.Go();
PdfPTable contactTable = new PdfPTable(2);
float[] contactWidths = new float[] { 1f, 1f };
contactTable.TotalWidth = 400f;
contactTable.LockedWidth = true;
contactTable.SpacingBefore = 10f;
contactTable.SetWidths(contactWidths);
PdfPCell contactInfoCell = new PdfPCell();
contactInfoCell.AddElement(new Chunk("Date Requested));
doc.Add(contactTable);

【问题讨论】:

    标签: c# itextsharp


    【解决方案1】:

    ColumnText.SetSimpleColumn() 用于绝对定位事物,而Document.Add() 方法用于相对定位事物。绝对对象和相对对象不知道彼此,这只是它们的本性。

    因此,如果您可以使用相对定位,那么请摆脱 ColumnText 并正常将Phrase 添加到文档中。

    如果您需要绝对定位,那么您也需要绝对定位表格。这可以使用表格的WriteSelectedRows() 方法来完成,您可以在该方法中指定要写入多少行以及从左上角开始绘制的位置。

    第三种可能的选择是,如果您使用ColumnText.SetSimpleColumn() 来绘制页眉,那么您只需更改文档的边距。您仍然可以绝对将内容放置在边距之外,但是当您使用 Document.Add() 时,它会尊重这些边距。

    【讨论】:

    • 非常感谢。我选择了第一个选项,但也可以使用其他两个选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多