2013-09-27 73 views
1

我有一个在pdftable之前出现的columntext,如何阻止两个元素重叠?itextsharp 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); 

回答

2

ColumnText.SetSimpleColumn()用于绝对位置的事情而Document.Add()方法用于相对位置的事情。绝对的和相对的物体并不知晓对方,这只是他们的本性。

所以,如果你可以使用相对定位,然后摆脱ColumnText并将Phrase添加到文档通常。

如果您需要绝对定位,那么您还需要绝对定位表格。这可以通过表格的WriteSelectedRows()方法完成,您可以在其中指示要写入的行数以及要开始绘制的左上角的内容。

第三种可能的选择是,如果您使用ColumnText.SetSimpleColumn()绘制页眉,则可以更改文档的页边距。您仍然可以绝对定位边际以外的东西,但是当您使用Document.Add()时,它会尊重这些边距。

+0

非常感谢。我选择了第一个选项,但其他两个也可以使用。 – mpora