ในฐานะนักพัฒนา C# คุณอาจต้องรวมไฟล์ PDF สองไฟล์ขึ้นไปเป็น PDF ไฟล์เดียว ในกรณีเช่นนี้ หากคุณไม่ต้องการพิมพ์ไฟล์ PDF ต่างๆ เช่น รายงาน ใบเสร็จ ฯลฯ ทีละไฟล์ ให้รวมเป็นเอกสารเดียวแล้วพิมพ์ ในบทความนี้ ฉันจะกล่าวถึงวิธีการรวมไฟล์ PDF โดยใช้ REST API

รวมไฟล์ PDF หลายไฟล์โดยใช้ Rest API

หัวข้อต่อไปนี้จะครอบคลุมในบทความนี้:

การผสานไฟล์ REST API และ .NET SDK

สำหรับการรวมไฟล์ ฉันจะใช้ API ของ .NET SDK of GroupDocs.Merger Cloud เป็น Cloud SDK ที่มีคุณลักษณะหลากหลายและมีประสิทธิภาพสูง ซึ่งใช้ในการรวมเอกสารหลายฉบับเป็นเอกสารเดียว แบ่งเอกสารเดียวออกเป็นหลายเอกสาร มีฟังก์ชันการจัดลำดับใหม่หรือแทนที่หน้าเอกสาร เปลี่ยนการวางแนวหน้า จัดการรหัสผ่านของเอกสาร และดำเนินการจัดการอื่นๆ อย่างง่ายดายสำหรับรูปแบบไฟล์ที่รองรับ ปัจจุบันยังมี Java, PHP, Ruby, Android และ Node.js SDK เป็น สมาชิกตระกูลการควบรวมเอกสาร สำหรับ Cloud API

คุณสามารถติดตั้ง GroupDocs.Merger-Cloud ในโครงการ Visual Studio ของคุณจาก NuGet Package manager หรือใช้คำสั่งต่อไปนี้ในคอนโซล Package Manager:

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 API

คุณสามารถรวมไฟล์ PDF สองไฟล์ขึ้นไปหรือผสานหน้าเฉพาะของ PDF โดยทำตามขั้นตอนง่าย ๆ ที่กล่าวถึงด้านล่าง:

อัปโหลดเอกสาร PDF

ประการแรก อัปโหลดเอกสาร PDF ไปยัง Cloud โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้:

  • การใช้ แดชบอร์ด
  • อัปโหลดไฟล์ทั้งหมดทีละไฟล์โดยใช้ 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 API ให้เป็น 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 ได้จาก เอกสารประกอบ ในกรณีที่มีความคลุมเครือ โปรดติดต่อ สนับสนุน