作為 C# 開發人員,您可能需要將兩個或多個 PDF 文件組合成一個 PDF。在這種情況下,如果您不想一個一個地打印各種 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 文件
這個簡單的代碼示例演示瞭如何使用 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 的更多信息。如有任何疑問,請隨時聯繫 支持。