بصفتك مطور C# ، قد تحتاج إلى دمج ملفين أو أكثر من ملفات PDF في ملف PDF واحد. في مثل هذه الحالات ، إذا كنت لا ترغب في طباعة ملفات PDF متنوعة مثل التقارير والإيصالات وما إلى ذلك ، فقم بدمجها في مستند واحد وطباعتها. في هذه المقالة ، أغطي كيفية دمج ملفات PDF باستخدام واجهة برمجة تطبيقات REST.

دمج ملفات PDF متعددة باستخدام Rest API

سيتم تناول الموضوعات التالية في هذه المقالة:

دمج الملفات REST API و .NET SDK

لدمج الملفات ، سأستخدم .NET SDK of GroupDocs.Merger Cloud API. إنها حزمة SDK غنية بالميزات وعالية الأداء تُستخدم لدمج العديد من المستندات في مستند واحد ، وتقسيم مستند واحد إلى مستندات متعددة. يوفر وظائف لإعادة ترتيب صفحات المستند أو استبدالها ، وتغيير اتجاه الصفحة ، وإدارة كلمات مرور المستندات ، وإجراء معالجات أخرى بسهولة لأي تنسيق ملف مدعوم. حاليًا ، توفر أيضًا Java و PHP و Ruby و Android و Node.js SDKs باعتبارها أعضاء عائلة دمج المستندات لواجهة برمجة التطبيقات السحابية.

يمكنك تثبيت GroupDocs.Merger-Cloud على مشروع Visual Studio الخاص بك من مدير حزمة NuGet أو باستخدام الأمر التالي في وحدة تحكم مدير الحزم:

Install-Package GroupDocs.Merger-Cloud

تحتاج إلى الحصول على معرّف العميل وسر العميل من لوحة القيادة قبل البدء في اتباع الخطوات وأمثلة الكود المتاحة. أضف معرّف العميل وسر العميل في الكود كما هو موضح أدناه:

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

دمج ملفات PDF باستخدام واجهة برمجة تطبيقات REST

يمكنك دمج ملفين أو أكثر من ملفات PDF أو دمج صفحات معينة من ملفات PDF باتباع الخطوات البسيطة المذكورة أدناه:

قم بتحميل مستندات PDF

أولاً ، قم بتحميل مستندات PDF على السحابة باستخدام أي من الطرق التالية:

  • استخدام لوحة التحكم
  • قم بتحميل جميع الملفات واحدًا تلو الآخر باستخدام Upload File 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 التي تم تحميلها

يوضح مثال الكود البسيط هذا كيفية دمج ملفات PDF متعددة باستخدام واجهة برمجة تطبيقات REST في ملف 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);
    }
}

خاتمة

في هذه المقالة ، تعلمت كيفية دمج ملفين أو أكثر من ملفات PDF أو صفحات معينة من ملفات PDF على السحابة باستخدام .NET Merger REST API باستخدام C#. لقد تعلمت أيضًا كيفية تحميل الملفات برمجيًا على السحابة ثم تنزيلها من السحابة. يمكنك معرفة المزيد حول GroupDocs.Merger Cloud API من الوثائق. في حالة وجود أي غموض ، لا تتردد في الاتصال بـ الدعم.