Last active
January 25, 2018 20:52
-
-
Save halyph/5378331 to your computer and use it in GitHub Desktop.
Calculate PDF Table Row Heights with iTextSharp (link) [http://kuujinbo.info/iTextSharp/rowHeights.aspx]
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public static float TotalRowHeights( | |
| Document document, PdfContentByte content, | |
| PdfPTable table, params int[] wantedRows) | |
| { | |
| float height = 0f; | |
| ColumnText ct = new ColumnText(content); | |
| // respect current Document.PageSize | |
| ct.SetSimpleColumn( | |
| document.Left, document.Bottom, | |
| document.Right, document.Top | |
| ); | |
| ct.AddElement(table); | |
| // **simulate** adding the PdfPTable to calculate total height | |
| ct.Go(true); | |
| foreach (int i in wantedRows) { | |
| height += table.GetRowHeight(i); | |
| } | |
| return height; | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| using (Document document = new Document()) { | |
| PdfWriter writer = PdfWriter.GetInstance(document, STREAM); | |
| document.Open(); | |
| PdfPTable table = new PdfPTable(4); | |
| for (int i = 1; i < 20; ++i) { | |
| table.AddCell(i.ToString()); | |
| } | |
| int[] wantedRows = {0, 2, 3}; | |
| document.Add(new Paragraph(string.Format( | |
| "Simulated table height: {0}", | |
| TotalRowHeights(document, writer.DirectContent, table, wantedRows) | |
| ))); | |
| // uncomment block below to verify correct height is being calculated | |
| /* | |
| document.Add(new Paragraph("Add the PdfPTable")); | |
| document.Add(table); | |
| float totalHeight = 0f; | |
| foreach (int i in wantedRows) { | |
| totalHeight += table.GetRowHeight(i); | |
| } | |
| document.Add(new Paragraph(string.Format( | |
| "Height after adding table: {0}", totalHeight | |
| ))); | |
| */ | |
| document.Add(new Paragraph("Test paragraph")); | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment