Як розробнику на C# вам може знадобитися об’єднати два або більше файлів PDF в один PDF. У таких випадках, якщо ви не хочете друкувати різноманітні PDF-файли, такі як звіти, квитанції тощо, один за іншим, об’єднайте їх в один документ і роздрукуйте. У цій статті я розповідаю, як об’єднати PDF-файли за допомогою REST API.

Об’єднайте кілька PDF-файлів за допомогою Rest API

У цій статті будуть розглянуті такі теми:

File Merger REST API та .NET SDK

Для об’єднання файлів я буду використовувати API .NET SDK GroupDocs.Merger Cloud. Це багатофункціональний і високопродуктивний Cloud SDK, який використовується для об’єднання кількох документів в один, розділення одного документа на кілька документів. Він пропонує функції для зміни порядку або заміни сторінок документа, зміни орієнтації сторінки, керування паролями документів та виконання інших маніпуляцій з будь-яким підтримуваним форматом файлу. Наразі він також надає Java, PHP, Ruby, Android і Node.js SDK як члени сімейства об’єднаних документів для Cloud API.

Ви можете встановити GroupDocs.Merger-Cloud у свій проект Visual Studio з диспетчера пакетів NuGet або за допомогою такої команди в консолі диспетчера пакетів:

Install-Package GroupDocs.Merger-Cloud

Вам потрібно отримати свій ідентифікатор клієнта та секрет клієнта з інформаційної панелі, перш ніж почати виконувати кроки та доступні приклади коду. Додайте свій ідентифікатор клієнта та секрет клієнта в код, як показано нижче:

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);

Об’єднайте PDF-файли за допомогою REST API

Ви можете об’єднати два чи більше файлів 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-файлів

Завантажені файли PDF на dashboard.groupdocs.cloud/files

Об’єднайте завантажені PDF-файли

Цей простий приклад коду демонструє, як об’єднати кілька PDF-файлів за допомогою REST API в один 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);
    }
}

Висновок

У цій статті ви дізналися, як об’єднати два або більше PDF-файлів або певні сторінки PDF-файлів у хмарі за допомогою .NET Merger REST API за допомогою C#. Ви також дізналися, як програмно завантажити файли в хмару, а потім завантажити їх із хмари. Ви можете дізнатися більше про GroupDocs.Merger Cloud API з документації. У разі будь-якої неясності зверніться до служби підтримки.