我有一個List<object>
這個列表包含數千條記錄。我想用itextsharp生成pdf。和Pdfptable
生成PDF它工作正常,但我只想在pdf中每頁10條記錄。
我該怎麼做?設置固定的每頁行數,使用itextsharp生成PDF
回答
另一種方式來設置每頁行數:
using System.Diagnostics;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
namespace RowsCountSample
{
class Program
{
static void Main(string[] args)
{
using (var pdfDoc = new Document(PageSize.A4))
{
var pdfWriter = PdfWriter.GetInstance(pdfDoc, new FileStream("Test.pdf", FileMode.Create));
pdfDoc.Open();
var table1 = new PdfPTable(3);
table1.HeaderRows = 2;
table1.FooterRows = 1;
//header row
var headerCell = new PdfPCell(new Phrase("header"));
headerCell.Colspan = 3;
headerCell.HorizontalAlignment = Element.ALIGN_CENTER;
table1.AddCell(headerCell);
//footer row
var footerCell = new PdfPCell(new Phrase("footer"));
footerCell.Colspan = 3;
footerCell.HorizontalAlignment = Element.ALIGN_CENTER;
table1.AddCell(footerCell);
//adding some rows
for (int i = 0; i < 70; i++)
{
//adds a new row
table1.AddCell(new Phrase("Cell[0], Row[" + i + "]"));
table1.AddCell(new Phrase("Cell[1], Row[" + i + "]"));
table1.AddCell(new Phrase("Cell[2], Row[" + i + "]"));
//sets the number of rows per page
if (i > 0 && table1.Rows.Count % 7 == 0)
{
pdfDoc.Add(table1);
table1.DeleteBodyRows();
pdfDoc.NewPage();
}
}
pdfDoc.Add(table1);
}
//open the final file with adobe reader for instance.
Process.Start("Test.pdf");
}
}
}
在最新版本的iTextSharp的的(5.3.3),加入新的功能,允許你定義的斷點:SetBreakPoints(int[] breakPoints)
如果定義的10的倍數的數組,你可以用它來獲得預期的效果。
如果您有較舊的版本,您應該遍歷列表併爲每10個對象創建一個新的PdfPTable。請注意,如果您想要將應用程序的內存使用量保持在較低水平,則這是更好的解決方案。
是的。第二個選項對我來說工作正常...這工作正常,但我表只涵蓋了一半的PDF頁面另一半仍然是空白的,我想表10行將覆蓋整個PDF頁..如何做到..? – SST
我不確定你的意思。有一種方法可以擴展最後一行,但是最後一行會有很多空白。還有一種設置固定行高的方法,但如果內容比行高更多,則不適合的內容將會丟失。最後,有一種方法可以設置最小高度(可以使用頁面高度/ 10),但是如果有更多內容,則該行將超過最小高度,並且表格將被拆分並分佈在兩頁上。對你的需求的描述對於人們能夠回答是不夠的。 –
- 1. 使用iTextSharp生成PDF
- 2. 使用iTextsharp生成PDF
- 3. 使用itextsharp生成PDF時生成條形碼pdf
- 4. 使用iTextSharp從視圖中生成PDF
- 5. 使用itextsharp生成html爲pdf
- 6. 如何設置使用HTMLDoc生成的pdf頁面總數?
- 7. 使用xdocreport生成pdf時設置頁數的選項
- 8. iTextSharp從WPF生成PDF FixedDocument
- 9. 使用itextsharp在PDF上設置圖像
- 10. 使用iTextSharp設置PDF版本
- 11. 使用iTextSharp或類似軟件生成和設計PDF
- 12. 使用iTextSharp從現有的PDF表格生成多個頁面PDF
- 13. iTextSharp的 - 如何定位PDF頁面數
- 14. 使用iTextSharp設置現有PDF的密碼後,PDF頁面爲空白
- 15. 如何設置由iTextSharp生成的pdf表格的起始位置?
- 16. iTextSharp正在生成損壞的PDF
- 17. iTextSharp生成pdf格式的gridview
- 18. iTextSharp的多頁PDF
- 19. 如何使用iTextSharp設置PDF段落或字體行高?
- 20. 使用iTextSharp設置頁邊距
- 21. 如何iTextSharp的PDF添加新的頁面生成使用HTML表格
- 22. 下載時生成空白pdf -ItextSharp
- 23. 在使用itextsharp生成的PDF中嵌入圖像sharepoint庫
- 24. 使用帶表格邊界的iTextSharp生成HTML到Pdf
- 25. 使用iTextSharp爲不同的語言生成pdf
- 26. iTextSharp無法使用傳真機生成的PDF?
- 27. 用pdf生成表使用itextsharp vb.net從sql
- 28. 使用PHP和Highcharts每週PDF生成
- 29. 在表格中生成固定行數
- 30. 使用iTextSharp獲取PDF頁面大小
怎麼樣一個循環檢索(最多)從該列表中10項,創建這些項目表,增加了表格文檔,並進入下一頁?或者我誤解了你的問題? – mkl
是的。這工作得很好,但我表只覆蓋了一半的PDF頁面,另一半仍然是空白的,我想表格10行將覆蓋整個PDF頁面..它是如何做到的..? – SST