如何使用itextsharp c#库生成大型PDF报告



如何使用itextsharp c#生成大型PDF报告?比如说,我想创建一个包含大约5000多页的PDF文件?没有内存异常?

Document pdfDoc = new Document(PageSize.A3.Rotate(), 0, 0, 10, 10);
FileStream stream = new FileStream(fileName, FileMode.Create);
var writer = PdfWriter.GetInstance(pdfDoc, stream);
pdfDoc.Open();
iTextSharp.text.pdf.ByteBuffer.HIGH_PRECISION = true;
PdfPTable PdfTable = new PdfPTable(1);
PdfTable.SpacingBefore = 30f;
if (headerContent != null)
{
foreach (PDFHeaderItem item in headerContent.items)
{
PdfTable.AddCell(CreateTitlePDFCell(Lang, item.ItemHeader, fontHeaderFontAR, headerContent));
PdfTable.SpacingBefore = 10f;
}
}
//Columns headerCellFormats
for (int i = 0; i < 500000000 ; i++)
{
PdfTable.AddCell(CreatePDFCell("TEXT", cell.KeyName, yourFont, cellFormats));    
}
PdfTable.Complete = true;
pdfDoc.Add(PdfTable);
pdfDoc.Close();

我们可以将pdf表添加到每x条记录的pdf文档中,以便它释放系统内存,请参考下面的代码

for (int i = 0; i < 500000; i++)
{
PdfTable.AddCell(CreatePDFCell("TEXT", cell.KeyName, yourFont, cellFormats));
if (i > 0 && i % 5000 == 0)
{
pdfDoc.Add(PdfTable);
}
}

最新更新