我在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);
答案 0 :(得分:3)
ColumnText.SetSimpleColumn()
用于绝对定位事物,而Document.Add()
方法用于相对定位事物。绝对和相对的对象彼此不了解,这只是他们的本性。
因此,如果你可以使用相对定位,那么摆脱ColumnText
并正常地将Phrase
添加到文档中。
如果你需要绝对定位,那么你也需要绝对定位桌子。这可以使用表的WriteSelectedRows()
方法来完成,您可以在其中指出要写入的行数以及开始绘制的左上角是什么。
第三种可能的选择是,如果您使用ColumnText.SetSimpleColumn()
绘制页眉,则只需更改文档的边距即可。你仍然可以绝对定位边距以外的东西,但是当你使用Document.Add()
时,它会尊重这些边距。