作為 C# 開發人員,您可能需要將兩個或多個 PDF 文件組合成一個 PDF。在這種情況下,如果您不想一個一個地打印各種 PDF 文件,如報告、收據等,則可以將它們合併到一個文檔中並打印。在本文中,我將介紹如何使用 REST API 合併 PDF 文件。

使用 Rest API 合併多個 PDF 文件

本文應涵蓋以下主題:

文件合併 REST API 和 .NET SDK

對於合併文件,我將使用 GroupDocs.Merger Cloud 的 .NET SDK API。它是一個功能豐富的高性能 Cloud SDK,用於將多個文檔合併為一個,將單個文檔拆分為多個文檔。它提供重新排序或替換文檔頁面、更改頁面方向、管理文檔密碼以及對任何支持的文件格式輕鬆執行其他操作的功能。目前,它還為 Cloud API 提供 Java、PHP、Ruby、Android 和 Node.js SDK 作為其文檔合併家族成員

您可以從 NuGet 包管理器或在包管理器控制台中使用以下命令將 GroupDocs.Merger-Cloud 安裝到您的 Visual Studio 項目:

Install-Package GroupDocs.Merger-Cloud

在開始執行步驟和可用代碼示例之前,您需要從 儀表板 獲取您的客戶端 ID 和客戶端密碼。在代碼中添加您的客戶端 ID 和客戶端密碼,如下所示:

string MyClientId = "YOUR-CLIENT-ID";
string MyClientSecret = "YOUR-CLIENT-SECRET";
string MyStorage;

var storageConfig = new Configuration(MyClientId, MyClientSecret);
var documentApi = new DocumentApi(storageConfig);
var storageApi = new StorageApi(storageConfig);
var fileApi = new FileApi(storageConfig);

使用 REST API 合併 PDF 文件

您可以按照以下簡單步驟合併兩個或多個 PDF 文件或合併 PDF 的特定頁面:

上傳PDF文檔

首先,使用以下任一方式將PDF文檔上傳至雲端:

  • 使用儀表板
  • 使用 Upload File API 從瀏覽器一一上傳所有文件
  • 使用下面給出的代碼示例以編程方式上傳:
public static void UploadFiles(StorageApi storageApi, FileApi fileApi)
{
	var path = @"C:\Files";

	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 Upload Process Completed.");
}

結果,PDF 文件將上傳到雲存儲。

合併 PDF 中的特定頁面

dashboard.groupdocs.cloud/files 上傳 PDF 文件

合併上傳的 PDF 文件

這個簡單的代碼示例演示瞭如何使用 REST API 將多個 PDF 文件合併為一個 PDF。

public static void MergeMultipleFiles(DocumentApi documentApi, FileApi fileApi)
{
    try
    {
        var item1 = new JoinItem
        {
            FileInfo = new GroupDocs.Merger.Cloud.Sdk.Model.FileInfo
            {
                FilePath = "one-page.pdf"
            }
        };

        var item2 = new JoinItem
        {
            FileInfo = new GroupDocs.Merger.Cloud.Sdk.Model.FileInfo
            {
                FilePath = "second-page.pdf"
            }
        };

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

        var request = new JoinRequest(options);
        var response = documentApi.Join(request);

        Console.WriteLine("Output file path: " + response.Path);

        // 下載合併文件
        DownloadFiles(fileApi, "merged-files.pdf");
    }
    catch (Exception e)
    {
        Console.WriteLine("Exception while calling api: " + e.Message);
    }
}

將 PDF 文件的特定頁面與另一個文件合併

您可以將 PDF 文件的特定頁面與另一個文件合併。為此,您需要提供一系列頁面,如以下代碼示例所示。

public static void MergeSpecificPagesOfFiles(DocumentApi documentApi, FileApi fileApi)
{
    try
    {
        var item1 = new JoinItem
        {
            FileInfo = new GroupDocs.Merger.Cloud.Sdk.Model.FileInfo
            {
                FilePath = "sample-10-pages.pdf"
            },
        };

        var item2 = new JoinItem
        {
            FileInfo = new GroupDocs.Merger.Cloud.Sdk.Model.FileInfo
            {
                FilePath = "four-pages.pdf"
            },
            StartPageNumber = 1,
            EndPageNumber = 3,
            RangeMode = JoinItem.RangeModeEnum.OddPages
        };

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

        var request = new JoinRequest(options);
        var response = documentApi.Join(request);

        Console.WriteLine("Output file path: " + response.Path);

        // 下載合併文件
        DownloadFiles(fileApi, "merged-pages.pdf");
    }
    catch (Exception e)
    {
        Console.WriteLine("Exception while calling api: " + e.Message);
    }
}

下載合併文件

上面的代碼示例將合併後的 PDF 文件保存在雲端。您可以使用以下代碼示例下載它:

public static void DownloadFiles(FileApi fileApi, string file)
{
    try
    {
        var downloadRequest = new DownloadFileRequest(file, MyStorage);

        Stream downloadResponse = fileApi.DownloadFile(downloadRequest);
        using (var fileStream = File.Create("C:\\Files\\" + file))
        {
            downloadResponse.Seek(0, SeekOrigin.Begin);
            downloadResponse.CopyTo(fileStream);
        }
        Console.WriteLine("File downloaded successfully");
    }
    catch (Exception e)
    {
        Console.WriteLine("Exception while calling api: " + e.Message);
    }
}

結論

在本文中,您了解瞭如何使用 C# 使用 .NET Merger REST API 合併雲上的兩個或多個 PDF 文件或 PDF 文件的特定頁面。您還學習瞭如何以編程方式將文件上傳到雲端,然後從雲端下載它們。您可以從 文檔 了解有關 GroupDocs.Merger Cloud API 的更多信息。如有任何疑問,請隨時聯繫 支持