MergePDFs.cs
// 完毕:
using System;
using System.IO;
using System.Drawing;
using GrapeCity.Documents.Pdf;
using GrapeCity.Documents.Pdf.Annotations;

namespace DsPdfWeb.Demos
{
    // 此示例演示如何将两个现有 PDF 合并为一个文档。
    // GcPdfDocument.MergeWithDocument() 方法提供了此功能,
    // 并允许您将另一个 PDF 中的全部或部分页面插入到当前 PDF 中
    // 文档。此示例演示了此方法的最简单形式,
    // 将整个 PDF 附加到当前文档。
    public class MergePDFs
    {
        public int CreatePDF(Stream stream)
        {
            using var fs0 = File.OpenRead(Path.Combine("Resources", "PDFs", "The-Rich-History-of-JavaScript.pdf"));
            using var fs1 = File.OpenRead(Path.Combine("Resources", "PDFs", "CompleteJavaScriptBook.pdf"));

            var doc = new GcPdfDocument();
            doc.Load(fs0);
            // 保存下面添加的导航链接的页数:
            var pgNo = doc.Pages.Count;
            var doc1 = new GcPdfDocument();
            doc1.Load(fs1);
            doc.MergeWithDocument(doc1, new MergeDocumentOptions());

            // 在文档开头插入注释:
            var page = doc.Pages.Insert(0);
            var rc = Common.Util.AddNote(
                "GcPdfDocument.MergeWithDocument() 方法允许将所有或部分页面添加到当前文档" +
                "",
                page);

            // 将注释链接到第二个文档的首页:
            page.Annotations.Add(new LinkAnnotation(rc, new DestinationFit(pgNo + 1)));
            // 完成(必须在处理源之前保存目标文档):
            doc.Save(stream);
            return doc.Pages.Count;
        }
    }
}