如何在 C# .Net 中将多个 PDF 文件合并为一个文件

如何使用 REST API 在 C# 中合并 PDF 文件。

PDF(便携式文档格式)广泛用于共享文档,同时保留其格式和布局。在某些情况下,您可能需要将多个 PDF 文件合并到一个文档中以简化信息或提高可访问性。 GroupDocs.Merger Cloud SDK for .Net 提供了一种强大而直观的方式来以编程方式合并 PDF 文件,从而节省您的时间和精力。在本文中,我们将探讨如何使用 REST API 在 C# 中合并和组合 PDF 文件。

本文应涵盖以下主题:

C# REST API 合并 PDF 文件和 C# SDK 安装

GroupDocs.Merger Cloud SDK for .NET 是一个强大而可靠的解决方案,允许开发人员将 PDF 合并功能合并到他们的 C# 应用程序中。它提供了一套全面的特性和功能来无缝合并和合并 PDF 文件。通过使用 SDK,您可以将多个支持的文档格式 合并到一个文档中,同时保留其原始格式、布局和内容。 SDK 可以集成到基于 C# 的应用程序中,以简化您的开发过程。

您可以从 NuGet 包管理器 或在 .NET CLI 中使用以下命令将 GroupDocs.Merger Cloud SDK for .NET 安装到您的项目中:

dotnet add package GroupDocs.Merger-Cloud --version 23.4.0

接下来,在开始执行步骤和可用代码示例之前,从 仪表板 收集客户端 ID 和客户端密码。在代码中添加 Client ID 和 Client Secret,如下所示:

//从 https://dashboard.groupdocs.cloud 获取 clientId 和 clientSecret(需要免费注册)。
string clientId = "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
string clientSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
string myStorage = "test-internal-storage";

var configuration = new Configuration(clientId, clientSecret);
configuration.ApiBaseUrl = "https://api.groupdocs.cloud";

使用 REST API 在 C# 中将多个 PDF 文件合并为一个文件

现在我们已经设置了开发环境并安装了 SDK,让我们继续合并 PDF 文件。按着这些次序:

上传文件

首先,使用以下任一方法将PDF文档上传至云存储:

  • 使用仪表板
  • 使用 Upload File API 从浏览器一一上传所有文件
  • 使用下面给出的代码示例以编程方式上传:
// 使用 C# 上传文件
using System;
using System.IO;
using GroupDocs.Merger.Cloud.Sdk.Api;
using GroupDocs.Merger.Cloud.Sdk.Client;
using GroupDocs.Merger.Cloud.Sdk.Model;
using GroupDocs.Merger.Cloud.Sdk.Model.Requests;

namespace GroupDocs.Merger.CSharp
{
  class Upload_PDF_Files

  {
    static void Main(string[] args)
    {
      
      try
      {
        // 创建必要的 API 实例
        var storageApi = new StorageApi(configuration);
        var fileApi = new FileApi(configuration);

        var path = @"H:\groupdocs-cloud-data";

        var files = Directory.GetFiles(path, "*.pdf", SearchOption.AllDirectories);
        foreach (var file in files)
        {
          var relativeFilePath = file.Replace(path, string.Empty).Trim(Path.DirectorySeparatorChar);

          var response = storageApi.ObjectExists(new ObjectExistsRequest(relativeFilePath, myStorage));
          if (response.Exists != null && !response.Exists.Value)
          {
            var fileStream = File.Open(file, FileMode.Open);

            fileApi.UploadFile(new UploadFileRequest(relativeFilePath, fileStream, myStorage));
            fileStream.Close();
          }
        }

        Console.WriteLine("File Uploaded to Cloud Storage.");
      }
      catch (Exception e)
      {
        Console.WriteLine("Exception when calling GroupDocs API: " + e.Message);
      }

    }
  }
}

因此,上传的 PDF 文件将在云端仪表板的 文件部分 中可用。

在 C# 中合并 PDF 文档

以下是演示如何在 C# 中以编程方式将多个 PDF 文档合并到单个文件的步骤和示例代码片段。

  • 首先,创建 DocumentApi 类的一个实例。
  • 其次,创建 JoinItem 类的实例。
  • 第三,为 FileInfo 中的第一个 JoinItem 设置输入文件路径。
  • 然后,为第二个输入文件创建一个新的 JoinItem 实例。
  • 现在,为 FileInfo 中的第二个 JoinItem 提供输入文件路径。
  • 您可以添加更多 JoinItems 以合并更多 PDF 文件。
  • 接下来,创建 JoinOptions 类的实例。
  • 添加以逗号分隔的已创建连接项列表。
  • 另外,在云端设置输出文件路径。
  • 现在,创建 JoinRequest 的实例并传递 JoinOptions 参数。
  • 最后,通过调用 DocumentApi 的 join() 方法并传递 JoinRequest 参数来获取结果。

以下代码片段显示了如何使用 REST API 在 C# 中将多个 PDF 文件合并为一个文件:

// 如何使用 REST API 在 C# 中将多个 PDF 文件合并为一个文件
using System;
using GroupDocs.Merger.Cloud.Sdk.Api;
using GroupDocs.Merger.Cloud.Sdk.Client;
using GroupDocs.Merger.Cloud.Sdk.Model;
using GroupDocs.Merger.Cloud.Sdk.Model.Requests;

namespace GroupDocs.Merger.CSharp
{
  // 如何使用 C# 将 PDF 文件合并为一个文件
  class Merge_PDF_Files

  {
    static void Main(string[] args)
    {

      try
      {
        // 创建必要的 API 实例
        var documentApi = new DocumentApi(configuration);
        var item1 = new JoinItem
        {
          FileInfo = new GroupDocs.Merger.Cloud.Sdk.Model.FileInfo
          {
            FilePath = "csharp-testing/sample-file-one.pdf"
          }
        };

        var item2 = new JoinItem
        {
          FileInfo = new GroupDocs.Merger.Cloud.Sdk.Model.FileInfo
          {
            FilePath = "csharp-testing/sample-file-two.pdf"
          }
        };

        var options = new JoinOptions
        {
          JoinItems = new List<JoinItem> { item1, item2 },
          OutputPath = "csharp-testing/merged-file.pdf"
        };

        var request = new JoinRequest(options);
        var response = documentApi.Join(request);
        Console.WriteLine("Successfully merged PDF files in C#: " + response.Path);
      }
      catch (Exception e)
      {
        Console.WriteLine("Exception when calling GroupDocs Api: " + e.Message);
      }

    }
  }
}

只需几行代码,您现在就可以使用 GroupDocs.Merger Cloud SDK for .Net 轻松合并 PDF 文件。

下载文件

上面的代码示例将合并后的 PDF 文件保存在云端。您可以使用以下代码片段下载它:

// 从云端下载结果文件
using System;
using GroupDocs.Conversion.Cloud.Sdk.Api;
using GroupDocs.Conversion.Cloud.Sdk.Client;
using GroupDocs.Conversion.Cloud.Sdk.Model.Requests;

namespace GroupDocs.Merger.CSharp
{
  // 下载输出文件
  class Download_File
  {
    static void Main(string[] args)
    {
      try
      {
        // 初始化接口
        var fileApi = new FileApi(configuration);
        // 创建下载文件请求
        var downloadRequest = new DownloadFileRequest("csharp-testing/merged-file.pdf", myStorage);
        // 下载文件
        Stream downloadResponse = fileApi.DownloadFile(downloadRequest);

        // 将文件保存在工作目录中
        using (var fileStream = System.IO.File.Create("H:\\groupdocs-cloud-data\\merged-file.pdf"))
        {
          downloadResponse.Seek(0, SeekOrigin.Begin);
          downloadResponse.CopyTo(fileStream);
        }
        Console.WriteLine("File downloaded successfully.");
      }
      catch (Exception e)
      {
        Console.WriteLine("Exception when calling GroupDocs FileApi: " + e.Message);
      }

    }
  }
}

使用 REST API 在 C# 中合并 PDF 文件的特定页面

GroupDocs.Merger Cloud SDK 提供各种高级选项,可根据您的要求自定义 PDF 合并过程。您可以按照以下步骤以编程方式轻松地将多个 PDF 文件中的特定页面合并到一个文件中:

  • 首先,创建 DocumentApi 类的一个实例。
  • 其次,创建 JoinItem 类的实例。
  • 第三,为 FileInfo 中的第一个 JoinItem 设置输入文件路径。
  • 接下来,提供以逗号分隔的要加入的页面列表。
  • 然后,为第二个输入文件创建一个新的 JoinItem 实例。
  • 现在,为 FileInfo 中的第二个 JoinItem 提供输入文件路径。
  • 设置 StartPageNumber、EndPageNumber 和 RangeMode 值。
  • 您可以添加更多 JoinItems 以合并更多 PDF 文件。
  • 接下来,创建 JoinOptions 类的实例。
  • 添加以逗号分隔的已创建连接项列表。
  • 另外,在云端设置输出文件路径。
  • 现在,创建 JoinRequest 的实例并传递 JoinOptions 参数。
  • 最后通过调用DocumentApi的join()方法并传入JoinRequest参数获取结果。

以下代码片段显示了如何使用 REST API 在 C# .NET 中合并来自两个 PDF 文件的特定页面:

// 如何在 C# 中合并多个 PDF 文件的特定页面
using System;
using GroupDocs.Merger.Cloud.Sdk.Api;
using GroupDocs.Merger.Cloud.Sdk.Client;
using GroupDocs.Merger.Cloud.Sdk.Model;
using GroupDocs.Merger.Cloud.Sdk.Model.Requests;

namespace GroupDocs.Merger.CSharp
{
  // 在 C# 中将 PDF 文件合并为一个文件
  class Merge_PDF_Files
  {
    static void Main(string[] args)
    { 

      try
      {
        
        // 创建必要的 API 实例
        var documentApi = new DocumentApi(configuration);
        var item1 = new JoinItem
        {
          FileInfo = new GroupDocs.Merger.Cloud.Sdk.Model.FileInfo
          {
            FilePath = "csharp-testing/sample-file-one.pdf"
          },
          Pages = new List<int?> { 1, 4, 7 }
        };

        var item2 = new JoinItem
        {
          FileInfo = new GroupDocs.Merger.Cloud.Sdk.Model.FileInfo
          {
            FilePath = "csharp-testing/sample-file-two.pdf"
          },
          StartPageNumber = 1,
          EndPageNumber = 5,
          RangeMode = JoinItem.RangeModeEnum.OddPages
        };

        var options = new JoinOptions
        {
          JoinItems = new List<JoinItem> { item1, item2 },
          OutputPath = "csharp-testing/merged-file.pdf"
        };

        var request = new JoinRequest(options);
        var response = documentApi.Join(request);
        Console.WriteLine("Successfully combined two PDF files into one in CSharp: " + response.Path);
      }
      catch (Exception e)
      {
        Console.WriteLine("Exception when calling GroupDocs Api: " + e.Message);
      }

    }
  }
}

免费在线 PDF 合并

如何免费在线将PDF文件合二为一?请尝试使用以下在线 PDF 合并 应用程序,从任何设备将多个 PDF 文件合并为一个文件。

加起来

总之,适用于 .Net 的 GroupDocs.Merger Cloud SDK 为在 C# 应用程序中合并 PDF 文件提供了可靠且高效的解决方案。这篇博文教会了我们:

  • 如何在云端的 C# .NET 中将多个 PDF 文件合并为一个文件;
  • 以编程方式从云端上传和下载 PDF 文件;
  • 如何在 C# 中将多个 PDF 文件的特定页面组合成一个文件;
  • 和免费的在线 PDF 文件合并工具。

此外,您可以使用 文档 了解有关 GroupDocs.Merge Cloud API 的更多信息。我们还提供了一个 API 参考 部分,让您可以直接通过浏览器可视化我们的 API 并与之交互。 GroupDocs.Merger Cloud SDK for .Net 的完整源代码可在 GitHub 上免费获得。

最后,我们继续撰写关于不同文件格式的新博客文章,并使用 REST API 解析它们。因此,请联系以获取最新更新。

问一个问题

如果您对 PDF Merger API 有任何疑问,请随时通过我们的论坛与我们联系。

常见问题

是否可以使用 C# 合并来自不同 PDF 文件的特定页面?

是的,使用 GroupDocs.Merger Cloud SDK for .NET,您可以指定页面范围以合并来自不同 PDF 文件的特定页面。这使您可以根据需要灵活地提取和组合相关信息。

如何安装在线 PDF 合并库?

您可以从 GroupDocs 官方网站 获取适用于 .Net 的 GroupDocs.Merger Cloud SDK。按照提供的安装说明在您的 C# 应用程序中设置 SDK

如何免费在线合并多个PDF文件?

请访问在线 PDF 合并工具,在几秒钟内免费合并两个或多个 PDF 文件。

也可以看看

如果您想了解更多相关主题,我们建议您阅读下面列出的文章: