Tag: pdfptable

使用ItextSharp PdfPTable,table.TotalHeight返回0.0,但期望正浮点值

我正在使用ItextSharp创建一个包含多个PdfPTable的PDF文档。 我使用列表对多个PdfPTable进行分组,列表在函数中创建并作为列表返回。 然后我获取列表并循环遍历它以将每个PdfPTable添加到文档中。 如果列表中的下一个PdfPTable大于文档上的剩余空间,我想添加一个新页面。 使用断点,我注意到“table.TotalHeight”总是返回0,当我希望它返回一个正浮点值时。 我可能误解了table.TotalHeight的工作方式,但根据我的理解,它应该返回单个表的总高度。 for (count1 = 0; count1 (writer.GetVerticalPosition(false) – doc.BottomMargin)) { doc.Add(new Paragraph(“Quote continues on next page”)); doc.NewPage(); } doc.Add(new Paragraph(” “)); doc.Add(table); }

如何将PdfPTable插入现有的PDF模板?

更新: 经过一番讨论,我们决定选择TeX,特别是兼容Windows的MiKTeX 。 我们意识到即使我们可以通过微观管理布局(这似乎不可能或者像计算每行的行高一样繁琐)来获得动态加长表,还有其他动态控件,如大文本框,我们也会需要微观管理,所以我们决定动态生成整个文档。 考虑到这一点,去TeX是显而易见的选择,因为它的力量和我们之前的经验,现在一周之后,我很高兴我们这样做,因为我们的所有报告都是动态生成的,而且背后的代码是干净的最小的。 原版的: 我有一个使用LiveCycle生成的pdf表单模板,我想填写它(pdfstamper)并添加一些表(pdfptable),但事实certificate它比我最初的想法更难。 我打开pdf并使用pdfstamper编辑静态字段: using (var outputPDF1 = new MemoryStream()) { var pdfReader = new PdfReader(pdf); var pdfStamper = new PdfStamper(pdfReader, outputPDF1); var pdfFields = pdfStamper.AcroFields; pdfFields.SetField(“Field1”, “Value1”); 这是直截了当的。 然后我尝试添加一个表,该表将从几个页面上的设置位置开始。 这里有一个尝试3岁,有一个更老版本的itextsharp,它是非常手动的。 该代码的关键是使用GetOverContent插入ColumnText与生成的表,但这需要知道表高度并手动切割表大小 var cb = pdfStamper.GetOverContent(1); var ct = new ColumnText(cb); ct.Alignment = Element.ALIGN_CENTER; ct.SetSimpleColumn(36, 36, PageSize.A4.Width-36, PageSize.A4.Height-300); ct.AddElement(table); ct.Go(); 还有另一个答案Itextsharp:在一页上调整2个元素,仅限于一个页面表。 […]

需要在iTextSharp的内部PdfPTable中提供分页符

我正在使用iTextSharp将我的html字符串打印到pdf。 我有嵌套表层次结构。 如果内表不适合当前页面并且在新页面上开始打印,我需要内部表。 我推了推 KeepTogether = true; SplitLate = false; LockedWidth = true; 对于父表以及所有子表的所有表。 但在我的情况下,内部表没有破坏。 这是图像。 我在document.add(parentTable)中添加主父表。 我已经检查过如果我将子表与父表分开并直接添加文档,它会在需要时打破页面。 但对于嵌套表,它不会破坏。 你能帮我么 ? 谢谢

如何在ItextSharp中设置PdfPCell的宽度

我想在表中设置PdfpCell的宽度,我想设计这个 我写这段代码 PdfPCell cell; PdfGrid tableHeader; PdfGrid tmpTable; PdfGrid table = new PdfGrid(numColumns: 1) { WidthPercentage = 100, RunDirection = PdfWriter.RUN_DIRECTION_LTR, ExtendLastRow = false }; string imagepath2 = HttpRuntime.AppDomainAppPath + “Header.JPG”; cell = new PdfPCell() { Border = 0, RunDirection = PdfWriter.RUN_DIRECTION_RTL }; cell.Image = iTextSharp.text.Image.GetInstance(imagepath2); table.AddCell(cell); tableHeader = new PdfGrid(numColumns: 10); tableHeader.RunDirection = PdfWriter.RUN_DIRECTION_LTR; […]

如何减少许多单元格的PdfPTable的内存消耗

我正在使用ITextSharp创建一个PDF,它由一个PdfTable组成。 不幸的是,对于特定的数据集,由于创建了大量的PdfPCell,我得到了Out of memory Exception(我已经分析了内存使用情况 – 我已经有近1/2万个单元!) 在这种情况下有没有办法减少内存使用量? 我试过在各个点(每行之后)和完全压缩后进行刷新 PdfWriter基于FileStream 代码看起来非常像这样: Document document = Document(); FileStream stream = new FileStream(fileName,FileMode.Create); pdfWriter = PdfWriter.GetInstance(document, stream); document.Open(); PdfPTable table = new PdfPTable(nbColumnToDisplay); foreach (GridViewRow row in gridView.Rows) { j = 0; for (int i = 0; i < gridView.HeaderRow.Cells.Count; i++) { PdfPCell cell = new PdfPCell( new […]