itextsharp列文本与表重叠

本文关键字:重叠 文本 itextsharp | 更新日期: 2023-09-27 18:33:08

我有一个列文本在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);

itextsharp列文本与表重叠

ColumnText.SetSimpleColumn()用于

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

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

如果您需要绝对定位

,那么您也需要绝对定位桌子。这可以使用表的 WriteSelectedRows() 方法完成,您可以在其中告知要写入的行数以及开始绘制的左上角

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