2013-09-27 74 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