Jako programista C# może być konieczne połączenie dwóch lub więcej plików PDF w jeden plik PDF. W takich przypadkach, jeśli nie chcesz drukować różnych plików PDF, takich jak raporty, rachunki itp. jeden po drugim, połącz je w jeden dokument i wydrukuj. W tym artykule omawiam, jak scalać pliki PDF za pomocą interfejsu API REST.

Scal wiele plików PDF za pomocą Rest API

W tym artykule zostaną omówione następujące tematy:

Interfejs API REST łączenia plików i zestaw .NET SDK

Do scalania plików będę używał .NET SDK of GroupDocs.Merger Cloud API. Jest to bogate w funkcje i wydajne Cloud SDK używane do łączenia kilku dokumentów w jeden, dzielenia pojedynczego dokumentu na wiele dokumentów. Oferuje funkcje zmiany kolejności lub zamiany stron dokumentu, zmiany orientacji strony, zarządzania hasłami do dokumentów i łatwego wykonywania innych operacji dla dowolnego obsługiwanego formatu pliku. Obecnie dostarcza również pakiety SDK Java, PHP, Ruby, Android i Node.js jako członkowie rodziny fuzji dokumentów dla Cloud API.

Możesz zainstalować GroupDocs.Merger-Cloud w swoim projekcie Visual Studio z Menedżera pakietów NuGet lub za pomocą następującego polecenia w konsoli Menedżera pakietów:

Install-Package GroupDocs.Merger-Cloud

Musisz uzyskać swój identyfikator klienta i klucz tajny klienta z panelu nawigacyjnego, zanim zaczniesz postępować zgodnie z instrukcjami i dostępnymi przykładami kodu. Dodaj swój identyfikator klienta i klucz tajny klienta w kodzie, jak pokazano poniżej:

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

Scal pliki PDF za pomocą interfejsu API REST

Możesz połączyć dwa lub więcej plików PDF lub scalić określone strony plików PDF, wykonując proste czynności wymienione poniżej:

Prześlij dokumenty PDF

Najpierw prześlij dokumenty PDF do chmury, korzystając z jednej z następujących metod:

  • Korzystanie z panelu nawigacyjnego
  • Prześlij wszystkie pliki jeden po drugim za pomocą Upload File API z przeglądarki
  • Prześlij programowo, korzystając z przykładowego kodu podanego poniżej:
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.");
}

W rezultacie pliki PDF zostaną przesłane do Cloud Storage.

Połącz określone strony z plików PDF

Przesłane pliki PDF na dashboard.groupdocs.cloud/files

Połącz przesłane pliki PDF

Ten prosty przykład kodu demonstruje, jak scalić wiele plików PDF przy użyciu interfejsu API REST w jeden plik 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);

        // Pobierz scalony plik
        DownloadFiles(fileApi, "merged-files.pdf");
    }
    catch (Exception e)
    {
        Console.WriteLine("Exception while calling api: " + e.Message);
    }
}

Połącz określone strony pliku PDF z innym plikiem

Możesz łączyć określone strony pliku PDF z innym plikiem. W tym celu musisz podać zakres stron, jak pokazano w przykładzie kodu podanym poniżej.

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

        // Pobierz scalony plik
        DownloadFiles(fileApi, "merged-pages.pdf");
    }
    catch (Exception e)
    {
        Console.WriteLine("Exception while calling api: " + e.Message);
    }
}

Pobierz scalony plik

Powyższy przykładowy kod zapisze scalony plik PDF w chmurze. Możesz go pobrać, korzystając z następującego przykładowego kodu:

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

Wniosek

Z tego artykułu dowiesz się, jak połączyć dwa lub więcej plików PDF lub określonych stron plików PDF w chmurze za pomocą interfejsu API REST .NET Merger przy użyciu języka C#. Nauczyłeś się również, jak programowo przesyłać pliki do chmury, a następnie pobierać je z chmury. Możesz dowiedzieć się więcej o GroupDocs.Merger Cloud API z dokumentacji. W przypadku jakichkolwiek niejasności skontaktuj się z support.