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.
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:
- Yüklemekthe PDF documents to the Cloud
- Birleştirmekthe uploaded PDF files
- veya bir PDF Dosyasının Belirli Sayfalarını Başka Bir Dosyayla Birleştir
- İndirmekthe merged file
PDF Belgelerini Yükleyin
İlk olarak, aşağıdaki yöntemlerden herhangi birini kullanarak PDF belgelerini Buluta yükleyin:
- Gösterge tablosunu kullanma
- Tarayıcıdan Dosya Yükle API’sını kullanarak tüm dosyaları tek tek yükleyin
- Aşağıda verilen kod örneğini kullanarak programlı olarak 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.
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.