iTextSharp table width 100% of page

2019-03-24 07:49发布

问题:

I'm trying to add a table to a document using iTextSharp. Here is an example:

Document document = new Document(PageSize.LETTER,72, 72, 72, 72);
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("C:\\test.pdf", FileMode.Create));

document.Open();
Table table = new Table ( 2, 1 );
table.Width = document.RightMargin - document.LeftMargin;

// Cell placeholder
Cell cell = new Cell ( new Paragraph ( "Some Text" ) );
table.AddCell ( cell );
cell = new Cell ( new Paragraph ( "More Text" ) );
table.AddCell ( cell );
document.Add ( table );
document.Close ( );

I'm setting the width of the table so that it should extend the margin of the page. But when the pdf is created the table only takes about 80% of the space between the margin's. Am I doing something incorrectly here?

回答1:

In iTextSharp latest version (5.0.4) the PdfPTable has a WidthPercentage property.

To set a static value the property is TotalWidth.



回答2:

Figured it out. Apparently table.Width is a percent and not the width in pixels. So using:

table.Width = 100;

Worked like a charm.



回答3:

Users can also set table width by Percentage.

t.WidthPercentage = 100f;


回答4:

The WidthPercentage property is no longer available in iText7. Use the following instead

table.SetWidth(new UnitValue(UnitValue.PERCENT, 100));


标签: c# pdf itext width