彩票走势图

logo E-iceblue中文文档
文档彩票走势图>>E-iceblue中文文档>>合并 PDF 文件并添加页码

合并 PDF 文件并添加页码


Spire.PDF for .NET 是一款专门对 Word 文档进行操作的 .NET 类库。致力于在于帮助开发人员轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档,而无需安装 Microsoft Word。

行号用于在每行文本旁边显示 Word 自动计算的行数。当我们需要参考合同或法律文件等文档中的特定行时,它非常有用。word中的行号功能允许我们设置起始值、编号间隔、与文本的距离以及行号的编号方式。使用 Spire.Doc,我们可以实现上述所有功能。本文将介绍如何将 HTML 转换为 PDF。

Spire.PDF for.NET 最新下载

欢迎加入spire技术交流群:767755948

在搜索了大量有关 PDF 合并的信息之后,我们不难发现,无论是在线合并 PDF 文件还是使用 C#/VB.NET 来实现这项任务,您始终无法摆脱对一些重要问题的担忧,例如 PDF 文件的安全性、所花费的时间以及合并后的文件是否支持打印页码等等。不过,只要你来到这里,这些烦恼就不会出现了。本节将专门为您介绍一种安全的解决方案,通过 .NET PDF 组件 Spire.PDF for .NET,用 C#、VB.NET 将 PDF 文件合并为一个文件。

Spire.PDF for .NET是用C#语言从零开始构建的,它能让程序员和开发人员在.NET应用程序中创建、读取、写入和处理PDF文档,而无需使用Adobe Acrobat或任何外部库。使用 Spire.PDF for .NET,您不仅可以快速合并 PDF 文件,还可以打印带有页码的 PDF 页面。现在请预览下面的有效截图:

在执行以下步骤之前,请下载 Spire.PDF for .NET 并将其安装到系统上。

步骤1:你可以使用字符串数组来保存将合并为一个PDF的三个PDF文件的名称,并演示Spire.Pdf.PdfDocument数组。然后,加载三个 PDF 文件并选择第一个 PdfDocument,以便将第二个和第三个 PDF 文件合并到其中。为了将第二个PDF文件中的所有页面导入到第一个PDF文件中,你需要调用方法 public void AppendPage(PdfDocument doc)。同样通过调用另一个方法public PdfPageBase InsertPage(PdfDocument doc, int pageIndex),第三个PDF文件的每一页都可以导入到第一个PDF文件中。

[C#]

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);
            }
[VB.NET]
Private Sub button1_Click(sender As Object, e As EventArgs)
'pdf document list
Dim files As [String]() = New [String]() {"..\PDFmerge0.pdf", "..\ PDFmerge1.pdf", "..\ PDFmerge2.pdf"}
'open pdf documents            
Dim docs As PdfDocument() = New PdfDocument(files.Length - 1) {}
For i As Integer = 0 To files.Length - 1
	docs(i) = New PdfDocument(files(i))
Next

'append document
docs(0).AppendPage(docs(1))

'import PDF pages
Dim i As Integer = 0
While i < docs(2).Pages.Count
	docs(0).InsertPage(docs(2), i)
	i = i + 2
End While
第二步:在第一个 PDF 文件中绘制页码。在这一步中,你可以通过调用 Spire.Pdf.Graphics.PdfMargins 类来设置 PDF 页码页边距。PdfMargins。然后,调用自定义方法 DrawPageNumber(PdfPageCollection pages, PdfMargins margin, int startNumber, int pageCount) 在第一个 PDF 文件的每一页底部添加页码。请看下面的详细代码:

[C#]

   //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);
    }
}
[VB.NET]
       'set PDF margin
	Dim unitCvtr As New PdfUnitConvertor()
	Dim margin As 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
	Me.DrawPageNumber(docs(0).Pages, margin, 1, docs(0).Pages.Count)

       Private Sub DrawPageNumber(pages As PdfPageCollection, margin As PdfMargins, startNumber As Integer, pageCount As Integer)
	For Each page As PdfPageBase In pages
		page.Canvas.SetTransparency(0.5F)
		Dim brush As PdfBrush = PdfBrushes.Black
		Dim pen As New PdfPen(brush, 0.75F)
		Dim font As New PdfTrueTypeFont(New Font("Arial", 9F, System.Drawing.FontStyle.Italic), True)
		Dim format As New PdfStringFormat(PdfTextAlignment.Right)
		format.MeasureTrailingSpaces = True
		Dim space As Single = font.Height * 0.75F
		Dim x As Single = margin.Left
		Dim width As Single = page.Canvas.ClientSize.Width - margin.Left - margin.Right
		Dim y As Single = page.Canvas.ClientSize.Height - margin.Bottom + space
		page.Canvas.DrawLine(pen, x, y, x + width, y)
		y = y + 1
		Dim numberLabel As [String] = [String].Format("{0} of {1}", System.Math.Max(System.Threading.Interlocked.Increment(startNumber),startNumber - 1), pageCount)
		page.Canvas.DrawString(numberLabel, font, brush, x + width, y, format)
		page.Canvas.SetTransparency(1)
	Next
End Sub
PDF 合并代码乍一看可能很长,实际上,如果你不需要在合并后的 PDF 中添加页码,则应避免使用第二步。然而,在很多情况下,页码为用户阅读 PDF 和打印 PDF 带来了极大的便利。Spire.PDF for .NET既能满足您合并PDF文件的要求,又能在合并后的PDF文件中添加页码。
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP