向pdf文档添加新页面c#

发布于 2024-12-21 06:53:55 字数 1556 浏览 1 评论 0原文

我需要在使用下面的代码创建的 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();
}

I need to add another page in a pdf file created using below code. the next page should also use the same template placed at path:

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

I am using itextsharp library to create documents. Below is the code used to generate 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();
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

离去的眼神 2024-12-28 06:53:55

您需要创建一个 PDFDocument,然后将您创建的文件合并到其中。此链接中有一个很好的示例:使用 ITextSharp 合并 PDF< /a>.

You need to create a PDFDocument and then merge the files that you create into it. There is a very good example of this in this link: Merge PDFs using ITextSharp.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文