C#使用iTextSharp合并pdf,添加页码 您所在的位置:网站首页 pdf合并之后怎么改页码 C#使用iTextSharp合并pdf,添加页码

C#使用iTextSharp合并pdf,添加页码

2024-03-07 07:31| 来源: 网络整理| 查看: 265

原文链接:https://www.cnblogs.com/yongsterZeroZeroOne/p/13738635.html

原文链接:https://www.cnblogs.com/AspDotNetMVC/p/3812157.html

一、合并pdf并添加页码

完整场景是这样:

1- 我把所有的PDF子文件存放的某个目录下

2-从数据库按条件查询出来的每个实体都带有一个字段,对应的是子pdf存放的位置pdf文件的名称,设为pdfName

3-需要把按条件查询出来的所有子pdf文件合并成一个大的pdf文件

4-合并的大的pdf文件,需要按要求加上页码

/// /// 合并PDF并且产生页码 /// /// void MergePDFFilesWithPageNumber(List data) {   string OrderNO = Request.QueryString["OrderNO"];   //最后合成的PDF文件要存放的文件目录   string reportPath = Server.MapPath("~/upload/Report/");           //最后合成的PDF文件的文件名   string reportName = "XXXXXX_Report.pdf";   //最后合并的PDF的完整地址   string mergePDFFiles = reportPath + reportName;   //如果目录不存在,创建目录   if (!Directory.Exists(reportPath))   {     Directory.CreateDirectory(reportPath);   }          //如果文件已存在,把原来的删除   if (File.Exists(reportPath + reportName))   {     File.Delete(reportPath + reportName);   }   //这是子pfd文件存放的文件目录地址(所有子pdf文件都存放在这个目录下)   string filePdfPath = Server.MapPath("~/upload/TemplateFile/PDF/" + OrderNO.Replace("*", "-"));   #region 使用iTextSharp合并PDF   //在总PDF的存放位置创建一个新的PDF   iTextSharp.text.Document DOC = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4.Rotate());   PdfWriter writer = PdfWriter.GetInstance(DOC, new FileStream(mergePDFFiles, FileMode.Create));   DOC.Open();   iTextSharp.text.Rectangle re;   PdfContentByte cb = writer.DirectContent;   PdfImportedPage newPage;  //页码的字体,大小样式   BaseFont bfHei = BaseFont.CreateFont(@"C:\Windows\Fonts\simhei.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);   Font font = new Font(bfHei, 10);   for (int i = 0; i < data.Count; i++)   {     //读取每个子PDF文件     PdfReader reader = new PdfReader(filePdfPath + "/" + data[i].pdfName);     //单个子PDF文件的页数     int iPageNum = reader.NumberOfPages;     //将每个子pdf的每一页插入到新创建的总PDF文件里,根据需要增加页面     for (int j = 1; j


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有