Bir C# geliştiricisi olarak, iki veya daha fazla PDF dosyasını tek bir PDF’de birleştirmeniz gerekebilir. Bu gibi durumlarda, raporlar, makbuzlar vb. gibi çeşitli PDF dosyalarını tek tek yazdırmak istemiyorsanız, bunları tek bir belgede birleştirin ve yazdırın. Bu makalede, bir REST API kullanarak PDF dosyalarının nasıl birleştirileceğini ele alıyorum.

Rest API kullanarak Birden Fazla PDF Dosyasını Birleştirin

Bu yazıda aşağıdaki konular ele alınacaktır:

Dosya Birleştirme REST API ve .NET SDK

Dosyaları birleştirmek için .NET SDK of GroupDocs.Merger Cloud API’sini kullanacağım. Birkaç belgeyi tek bir belgede birleştirmek, tek bir belgeyi birden çok belgeye bölmek için kullanılan, zengin özelliklere sahip ve yüksek performanslı bir Bulut SDK’sıdır. Belge sayfalarını yeniden sıralamak veya değiştirmek, sayfa yönünü değiştirmek, belge parolalarını yönetmek ve desteklenen herhangi bir dosya formatı için diğer işlemleri kolayca gerçekleştirmek için işlevsellik sunar. Şu anda, Cloud API için belge birleştirme ailesi üyeleri olarak Java, PHP, Ruby, Android ve Node.js SDK’ları da sağlamaktadır.

GroupDocs.Merger-Cloud’u Visual Studio projenize NuGet Paket yöneticisinden veya Paket Yöneticisi konsolunda aşağıdaki komutu kullanarak yükleyebilirsiniz:

Install-Package GroupDocs.Merger-Cloud

Adımları ve mevcut kod örneklerini izlemeye başlamadan önce gösterge tablosundan İstemci Kimliğinizi ve İstemci Sırrınızı almanız gerekir. Müşteri Kimliğinizi ve Müşteri Sırrınızı aşağıda gösterildiği gibi koda ekleyin:

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 kullanarak PDF Dosyalarını Birleştirin

Aşağıda belirtilen basit adımları izleyerek iki veya daha fazla PDF dosyasını birleştirebilir veya PDF’lerin belirli sayfalarını birleştirebilirsiniz:

PDF Belgelerini Yükleyin

İlk olarak, aşağıdaki yöntemlerden herhangi birini kullanarak PDF belgelerini Buluta yükleyin:

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

Sonuç olarak, PDF dosyaları Bulut Depolamaya yüklenecektir.

PDF'lerden Belirli Sayfaları Birleştirin

dashboard.groupdocs.cloud/files adresinde yüklenen PDF dosyaları

Yüklenen PDF Dosyalarını Birleştirin

Bu basit kod örneği, bir REST API kullanarak birden çok PDF dosyasının tek bir PDF’de nasıl birleştirileceğini gösterir.

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

        // Birleştirilmiş Dosyayı İndirin
        DownloadFiles(fileApi, "merged-files.pdf");
    }
    catch (Exception e)
    {
        Console.WriteLine("Exception while calling api: " + e.Message);
    }
}

Bir PDF Dosyasının Belirli Sayfalarını Başka Bir Dosyayla Birleştirme

Bir PDF dosyasının belirli sayfalarını başka bir dosyayla birleştirebilirsiniz. Bu amaçla, aşağıda verilen kod örneğinde gösterildiği gibi bir sayfa aralığı sağlamanız gerekir.

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

        // Birleştirilmiş Dosyayı İndirin
        DownloadFiles(fileApi, "merged-pages.pdf");
    }
    catch (Exception e)
    {
        Console.WriteLine("Exception while calling api: " + e.Message);
    }
}

Birleştirilmiş Dosyayı İndirin

Yukarıdaki kod örneği, birleştirilmiş PDF dosyasını buluta kaydedecektir. Aşağıdaki kod örneğini kullanarak indirebilirsiniz:

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

Çözüm

Bu makalede, C# kullanarak .NET Merger REST API ile bulutta iki veya daha fazla PDF dosyasını veya PDF dosyalarının belirli sayfalarını nasıl birleştireceğinizi öğrendiniz. Dosyaları programlı olarak buluta nasıl yükleyeceğinizi ve ardından bunları buluttan nasıl indireceğinizi de öğrendiniz. Belgelerden GroupDocs.Merger Cloud API hakkında daha fazla bilgi edinebilirsiniz. Herhangi bir belirsizlik durumunda destek ile iletişime geçmekten çekinmeyin.