在pdf文档中添加新页面c#

时间:2011-12-14 21:54:55

标签: c# pdf .net-4.0 pdf-generation itextsharp

我需要在使用以下代码创建的pdf文件中添加另一个页面。下一页还应使用位于路径的相同模板:

HostingEnvironment.MapPath("~/Content/InvoiceTemplate/invoiceTemplate.pdf")

我正在使用itextsharp库来创建文档。以下是用于生成pdf的代码。

public static void WriteInTemplate(List<Models.Statement> statementList)
{

    string invoiceNumber = statementList.FirstOrDefault().Invoice.ToString().Trim();
    string month = null;
    string day = null;
    string year = null;


    PdfReader pdfReader = new PdfReader(HostingEnvironment.MapPath("~/Content/InvoiceTemplate/invoiceTemplate.pdf"));
    FileStream fileStream = new FileStream(HostingEnvironment.MapPath("~/Content/reports/" + invoiceNumber + ".pdf"), FileMode.Create);
    PdfStamper pdfStamper = new PdfStamper(pdfReader, fileStream);


    AcroFields pdfFields = pdfStamper.AcroFields;


    pdfFields.SetField("BillToCompany", statementList.FirstOrDefault().BillToCompany.ToString().Trim().ToUpper());
    pdfFields.SetField("BillToContact", statementList.FirstOrDefault().BillToContact.ToString().Trim().ToUpper());
    pdfFields.SetField("CustomerId", statementList.FirstOrDefault().Customer_ID);
    pdfFields.SetField("InvoiceNumber", statementList.FirstOrDefault().Invoice.ToString().Trim());
    pdfFields.SetField("JobNumber", statementList.FirstOrDefault().JobNumber.ToString().Trim());
    pdfFields.SetField("Caller", statementList.FirstOrDefault().Caller.ToString().Trim());


    pdfStamper.FormFlattening = true; // generate a flat PDF 
    pdfStamper.Close();
    pdfReader.Close();
}

2 个答案:

答案 0 :(得分:1)

这个链接应该给你一个想法,这是在这个网站上的类似帖子。

adding new pdf page

答案 1 :(得分:-1)

您需要创建PDF文档,然后将您创建的文件合并到其中。这个链接有一个很好的例子:Merge PDFs using ITextSharp