Spire.PDF for .NET如何进行PDF文档的合并和添加页码

作者:控件中国网   出处:控件中国网   2015-10-23 09:50:37   阅读:15

在搜索了很多合并PDF文件的信息后,发现使用Spire.PDF for .NET控件是最简便和有效的解决方案,不用担心合并中PDF文档的损坏、安全,也不用花太多的时间,只需要几句代码即可轻松实现,这篇文章主要就是介绍怎么使用Spire.PDF进行多个PDF文件的合并操作,并在合并后为新的PDF文件添加页码。
 
Spire.PDF采用100%的C#编写,使程序员可以使用.NET在没有安装 Adobe Acrobat的情况下,快速地创建、读取、处理PDF文档,下面就怎么进行合并做简要的介绍
pdfmerge-0828.jpg
1.首先开发人员可以使用字符串数组才保存三个需要合并的PDF文件名,然后加载三个PDF文件,并选择第一个PDF文档对第二个和第三个文档进行合并,为了能够把第二个PDF文件中的所有页导入到第一个PDF文件中,需要使用到Spire.PDF for .NET控件提供的 public void AppendPage(PdfDocument doc).方法
private void button1_Click(object sender, EventArgs e)
        {
            //pdf document list
            String[] files = new String[]
            {
                @"..\PDFmerge0.pdf",
                @"..\ PDFmerge1.pdf",
                @"..\ PDFmerge2.pdf"
            };
            //open pdf documents            
            PdfDocument[] docs = new PdfDocument[files.Length];
            for (int i = 0; i < files.Length; i++)
            {
                docs[i] = new PdfDocument(files[i]);
            }
            //append document
            docs[0].AppendPage(docs[1]);
 
            //import PDF pages
            for (int i = 0; i < docs[2].Pages.Count; i = i + 2)
            {
                docs[0].InsertPage(docs[2], i);
            }
2.设置PDF文档的页码,可以通过控件提供的Spire.PDF.Graphics. PdfMargins来设置页码的边距,然后调用DrawPageNumber
(PdfPageCollection pages, PdfMargins margin, int startNumber, int pageCount) 方法来绘制页码,页码可以是PDF文件底部的任何位置
//set PDF margin
    PdfUnitConvertor unitCvtr = new PdfUnitConvertor();
    PdfMargins margin = new PdfMargins();
    margin.Top = unitCvtr.ConvertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point);
    margin.Bottom = margin.Top;
    margin.Left = unitCvtr.ConvertUnits(3.17f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point);
    margin.Right = margin.Left;
    this.DrawPageNumber(docs[0].Pages, margin, 1, docs[0].Pages.Count);
 
  private void DrawPageNumber(PdfPageCollection pages, PdfMargins margin, int startNumber, int pageCount)
  {
    foreach (PdfPageBase page in pages)
    {
        page.Canvas.SetTransparency(0.5f);
        PdfBrush brush = PdfBrushes.Black;
        PdfPen pen = new PdfPen(brush, 0.75f);
        PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 9f, System.Drawing.FontStyle.Italic), true);
        PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Right);
        format.MeasureTrailingSpaces = true;
        float space = font.Height * 0.75f;
        float x = margin.Left;
        float width = page.Canvas.ClientSize.Width - margin.Left - margin.Right;
        float y = page.Canvas.ClientSize.Height - margin.Bottom + space;
        page.Canvas.DrawLine(pen, x, y, x + width, y);
        y = y + 1;
        String numberLabel
            = String.Format("{0} of {1}", startNumber++, pageCount);
        page.Canvas.DrawString(numberLabel, font, brush, x + width, y, format);
        page.Canvas.SetTransparency(1);
    }
}
Copyright© 2006-2015 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 渝ICP备12000264号 法律顾问:元炳律师事务所
客服软件
live chat