En tant que développeur C#, vous devrez peut-être combiner deux ou plusieurs fichiers PDF en un seul PDF. Dans de tels cas, si vous ne souhaitez pas imprimer plusieurs fichiers PDF tels que des rapports, des reçus, etc. un par un, combinez-les en un seul document et imprimez-les. Dans cet article, j’explique comment fusionner des fichiers PDF à l’aide d’une API REST.

Fusionner plusieurs fichiers PDF à l'aide d'une API Rest

Les sujets suivants seront traités dans cet article :

API REST de fusion de fichiers et SDK .NET

Pour fusionner des fichiers, j’utiliserai l’API .NET SDK of GroupDocs.Merger Cloud. Il s’agit d’un SDK Cloud riche en fonctionnalités et hautes performances utilisé pour fusionner plusieurs documents en un seul, diviser un seul document en plusieurs documents. Il offre des fonctionnalités permettant de réorganiser ou de remplacer les pages de document, de modifier l’orientation de la page, de gérer les mots de passe des documents et d’effectuer facilement d’autres manipulations pour tout format de fichier pris en charge. Actuellement, il fournit également les SDK Java, PHP, Ruby, Android et Node.js en tant que membres de la famille de fusion de documents pour l’API Cloud.

Vous pouvez installer GroupDocs.Merger-Cloud sur votre projet Visual Studio à partir du gestionnaire de packages NuGet ou à l’aide de la commande suivante dans la console du gestionnaire de packages :

Install-Package GroupDocs.Merger-Cloud

Vous devez obtenir votre ID client et votre secret client à partir du tableau de bord avant de commencer à suivre les étapes et les exemples de code disponibles. Ajoutez votre ID client et votre secret client dans le code comme illustré ci-dessous :

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

Fusionner des fichiers PDF à l’aide d’une API REST

Vous pouvez combiner deux ou plusieurs fichiers PDF ou fusionner des pages spécifiques de PDF en suivant les étapes simples mentionnées ci-dessous :

Télécharger les documents PDF

Tout d’abord, chargez les documents PDF dans le Cloud en utilisant l’une des méthodes suivantes :

  • Utilisation du tableau de bord
  • Téléchargez tous les fichiers un par un à l’aide de Upload File API depuis le navigateur
  • Importez par programmation à l’aide de l’exemple de code ci-dessous :
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.");
}

En conséquence, les fichiers PDF seront téléchargés sur le Cloud Storage.

Combiner des pages spécifiques à partir de PDF

Fichiers PDF téléchargés sur dashboard.groupdocs.cloud/files

Fusionner les fichiers PDF téléchargés

Cet exemple de code simple montre comment fusionner plusieurs fichiers PDF à l’aide d’une API REST en un seul 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);

        // Télécharger le fichier fusionné
        DownloadFiles(fileApi, "merged-files.pdf");
    }
    catch (Exception e)
    {
        Console.WriteLine("Exception while calling api: " + e.Message);
    }
}

Combiner des pages spécifiques d’un fichier PDF avec un autre fichier

Vous pouvez combiner des pages spécifiques d’un fichier PDF avec un autre fichier. À cette fin, vous devez fournir une plage de pages, comme illustré dans l’exemple de code ci-dessous.

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

        // Télécharger le fichier fusionné
        DownloadFiles(fileApi, "merged-pages.pdf");
    }
    catch (Exception e)
    {
        Console.WriteLine("Exception while calling api: " + e.Message);
    }
}

Télécharger le fichier fusionné

L’exemple de code ci-dessus enregistrera le fichier PDF fusionné sur le cloud. Vous pouvez le télécharger à l’aide de l’exemple de code suivant :

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

Conclusion

Dans cet article, vous avez appris à combiner deux fichiers PDF ou plus ou des pages spécifiques de fichiers PDF sur le cloud avec l’API REST .NET Merger à l’aide de C#. Vous avez également appris à télécharger par programme les fichiers sur le cloud, puis à les télécharger à partir du cloud. Vous pouvez en savoir plus sur l’API GroupDocs.Merger Cloud à partir de la documentation. En cas d’ambiguïté, n’hésitez pas à contacter support.