C# 개발자는 둘 이상의 PDF 파일을 단일 PDF로 결합해야 할 수 있습니다. 이러한 경우 보고서, 영수증 등 다양한 PDF 파일을 하나씩 인쇄하고 싶지 않다면 하나의 문서로 결합하여 인쇄하십시오. 이 기사에서는 REST API를 사용하여 PDF 파일을 병합하는 방법을 다루고 있습니다.

Rest API를 사용하여 여러 PDF 파일 병합

이 문서에서는 다음 항목을 다룹니다.

파일 병합기 REST API 및 .NET SDK

파일 병합을 위해 GroupDocs.Merger Cloud의 .NET SDK API를 사용합니다. 여러 문서를 하나로 병합하고 단일 문서를 여러 문서로 분할하는 데 사용되는 기능이 풍부한 고성능 Cloud SDK입니다. 문서 페이지 재정렬 또는 교체, 페이지 방향 변경, 문서 암호 관리 및 지원되는 모든 파일 형식에 대한 기타 조작을 쉽게 수행하는 기능을 제공합니다. 현재 Java, PHP, Ruby, Android 및 Node.js SDK도 Cloud API용 문서 병합 제품군 구성원으로 제공합니다.

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 문서를 클라우드에 업로드합니다.

  • 대시보드 사용
  • 브라우저에서 파일 업로드 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 파일이 Cloud Storage에 업로드됩니다.

PDF의 특정 페이지 결합

PDF 파일을 dashboard.groupdocs.cloud/files에 업로드했습니다.

업로드된 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에 대해 자세히 알아볼 수 있습니다. 모호한 점이 있으면 언제든지 support에 문의하십시오.