问题
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));
回答5:
In Java table.setWidthPercentage(100);
Works in 5.5.8 version
来源:https://stackoverflow.com/questions/1481139/itextsharp-table-width-100-of-page