1

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

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);
4

1 回答 1

3

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

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

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

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

于 2013-09-27T17:52:46.437 回答