Як розробнику на C# вам може знадобитися об’єднати два або більше файлів PDF в один PDF. У таких випадках, якщо ви не хочете друкувати різноманітні PDF-файли, такі як звіти, квитанції тощо, один за іншим, об’єднайте їх в один документ і роздрукуйте. У цій статті я розповідаю, як об’єднати 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-файлів, виконавши прості дії, наведені нижче:
- Завантажитиthe PDF documents to the Cloud
- Об’єднатиthe uploaded PDF files
- або Поєднати певні сторінки файлу PDF з іншим файлом
- Завантажитиthe merged file
Завантажте 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-файлів за допомогою 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 з документації. У разі будь-якої неясності зверніться до служби підтримки.