การสกัดภาพแต่ละภาพจากเอกสาร PDF ที่จัดเก็บในคลาวด์เป็นความต้องการที่พบบ่อยสำหรับแอปพลิเคชัน C# สมัยใหม่ที่ต้องการใช้ซ้ำหรือวิเคราะห์ทรัพย์สินภาพ. Aspose.PDF for .NET ให้ API บนคลาวด์ที่ทรงพลังซึ่งทำให้ภารกิจนี้ง่ายขึ้น. คุณจะได้เรียนรู้วิธีสกัดภาพจากไฟล์ PDF ด้วย C# และ Aspose.PDF Cloud SDK. เมื่อจบคู่มือคุณจะมีโซลูชันที่สมบูรณ์พร้อมใช้งานในระดับการผลิตพร้อมทั้งโค้ด SDK และคำสั่ง cURL ที่เทียบเท่า.

ข้อกำหนดสำหรับการดึงภาพจาก PDF ใน C#

นักพัฒนาที่สร้าง pipeline การประมวลผลเอกสารแบบ cloud‑native มักต้องดึงกราฟิกจากไฟล์ PDF ที่อยู่ในที่เก็บข้อมูลระยะไกล ความต้องการทั่วไปรวมถึง:

  • การเข้าถึง PDF ที่จัดเก็บใน Aspose Cloud storage.
  • ความสามารถในการนับจำนวนวัตถุภาพทุกภาพที่ฝังอยู่ในเอกสาร.
  • ดาวน์โหลดภาพแต่ละภาพในรูปแบบต้นฉบับโดยไม่สูญเสียคุณภาพ.
  • ใช้หน่วยความจำขั้นต่ำเพื่อจัดการ PDF ขนาดใหญ่บนเซิร์ฟเวอร์.

เครื่องมือระบบไฟล์ทั่วไปไม่สามารถเข้าถึงที่เก็บข้อมูลบนคลาวด์โดยตรง และการสกัดข้อมูลด้วยซอฟต์แวร์บนเดสก์ท็อปแบบแมนนวลไม่สามารถขยายได้สำหรับงานที่ทำอัตโนมัติ วิธีการเชิงโปรแกรมโดยใช้ไลบรารีที่พร้อมใช้งานบนคลาวด์เป็นสิ่งจำเป็น.

วิธีที่ Aspose.PDF Cloud SDK for .NET ทำงานกับการสกัดภาพจาก PDF

Aspose.PDF Cloud SDK for .NET มี API แบบ REST‑based ที่ทำงานกับไฟล์ PDF ที่จัดเก็บใน Aspose Cloud. มันให้เมธอดเช่น GetDocumentImages เพื่อแสดงรายการรูปภาพและ GetImage เพื่อดาวน์โหลดรูปภาพเหล่านั้น, ทั้งหมดผ่าน HTTPS. SDK จัดการการตรวจสอบสิทธิ์, การจัดการที่เก็บข้อมูล, และการสตรีมข้อมูลไบนารี, ทำให้คุณสามารถมุ่งเน้นที่ตรรกะธุรกิจได้.

SDK ยังรองรับไฟล์ขนาดใหญ่ผ่านการอัปโหลดแบบแบ่งส่วนและการใช้หน่วยความจำอย่างมีประสิทธิภาพ ซึ่งสอดคล้องกับความต้องการด้านประสิทธิภาพของแอปพลิเคชันฝั่งเซิร์ฟเวอร์ รายละเอียดการใช้ API สามารถพบได้ใน เอกสารอย่างเป็นทางการ และ อ้างอิง API.

สร้างโซลูชัน: ดึงรูปภาพจาก PDF ใน C#

ติดตั้ง Aspose.PDF Cloud SDK for .NET

ขั้นแรก ให้เพิ่มแพคเกจ SDK ไปยังโครงการของคุณ.

dotnet add package Aspose.PDF-Cloud

คุณก็สามารถดาวน์โหลดไฟล์ไบนารีได้จาก หน้าดาวน์โหลด.

กำหนดค่า Aspose Cloud ข้อมูลรับรอง

สร้างอ็อบเจ็กต์การกำหนดค่าด้วย client ID และ secret ของคุณ.

var config = new Configuration
{
    ClientId = "YOUR_CLIENT_ID",
    ClientSecret = "YOUR_CLIENT_SECRET"
};
var pdfApi = new PdfApi(config);

คลาส Configuration มีเอกสารอยู่ใน อ้างอิง API.

อัปโหลด PDF ไปยัง Cloud Storage

หาก PDF ยังไม่ได้อยู่ในที่เก็บข้อมูลของ Aspose Cloud ให้อัปโหลดมัน

using (var fileStream = File.OpenRead(pdfFileName))
{
    byte[] fileBytes = new byte[fileStream.Length];
    fileStream.Read(fileBytes, 0, fileBytes.Length);
    pdfApi.UploadFile(Path.Combine("Temp", pdfFileName), fileBytes);
}

เมธอด UploadFile จะจัดเก็บไฟล์ไว้ในโฟลเดอร์ Temp.

ดึงรายการรูปภาพที่ฝังอยู่

เรียก API เพื่อรับข้อมูลเกี่ยวกับแต่ละภาพ

ImagesResponse imagesResponse = pdfApi.GetDocumentImages(pdfFileName);

ImagesResponse มีคอลเลกชันของอ็อบเจกต์ ImageInfo แต่ละอ็อบเจกต์มี Id และ ImageFormat.

ดาวน์โหลดแต่ละภาพและบันทึกลงในเครื่อง

วนซ้ำผ่านรายการรูปภาพ ดาวน์โหลด และเขียนลงดิสก์.

foreach (ImageInfo imageInfo in imagesResponse.Images.List)
{
    int imageId = imageInfo.Id ?? 0;
    string format = imageInfo.ImageFormat?.ToLower() ?? "png";
    string outputFileName = $"extracted_image_{imageId}.{format}";
    byte[] imageBytes = pdfApi.GetImage(pdfFileName, imageId);
    File.WriteAllBytes(outputFileName, imageBytes);
}

ลูปนี้จะคงรูปแบบภาพต้นฉบับและสร้างไฟล์ที่มีชื่อว่า extracted_image_<id>.<ext>

ตัวอย่างการทำงานเต็มสำหรับการดึงรูปภาพจาก PDF ด้วยการจัดเก็บบนคลาวด์

โค้ดต่อไปนี้แสดงกระบวนการทำงานทั้งหมดตั้งแต่การตรวจสอบสิทธิ์จนถึงการทำความสะอาด.

using System;
using System.IO;
using Aspose.Pdf.Cloud.Sdk.Api;
using Aspose.Pdf.Cloud.Sdk.Client;
using Aspose.Pdf.Cloud.Sdk.Model;

class ExtractImagesFromPdf
{
    static void Main()
    {
        // Replace with your actual Aspose Cloud credentials
        string clientId = "YOUR_CLIENT_ID";
        string clientSecret = "YOUR_CLIENT_SECRET";

// Initialize Aspose.PDF Cloud configuration
        var config = new Configuration
        {
            ClientId = clientId,
            ClientSecret = clientSecret
        };
        var pdfApi = new PdfApi(config);

// PDF file name (must be present in Aspose Cloud storage)
        string pdfFileName = "input.pdf";

// Optional: upload the PDF to cloud storage if it does not exist there
        if (!File.Exists(pdfFileName))
        {
            Console.WriteLine($"Local file '{pdfFileName}' not found.");
            return;
        }
        using (var fileStream = File.OpenRead(pdfFileName))
        {
            byte[] fileBytes = new byte[fileStream.Length];
            fileStream.Read(fileBytes, 0, fileBytes.Length);
            pdfApi.UploadFile(Path.Combine("Temp", pdfFileName), fileBytes);
        }

// Retrieve list of images embedded in the PDF
        ImagesResponse imagesResponse = pdfApi.GetDocumentImages(pdfFileName);
        if (imagesResponse?.Images?.List == null || imagesResponse.Images.List.Count == 0)
        {
            Console.WriteLine("No images found in the PDF.");
            return;
        }

// Extract each image and save locally
        foreach (ImageInfo imageInfo in imagesResponse.Images.List)
        {
            int imageId = imageInfo.Id ?? 0;
            string format = imageInfo.ImageFormat?.ToLower() ?? "png";
            string outputFileName = $"extracted_image_{imageId}.{format}";

// Download image bytes from the cloud
            byte[] imageBytes = pdfApi.GetImage(pdfFileName, imageId);
            if (imageBytes == null || imageBytes.Length == 0)
            {
                Console.WriteLine($"Failed to download image ID {imageId}.");
                continue;
            }

// Write image to local file system
            File.WriteAllBytes(outputFileName, imageBytes);
            Console.WriteLine($"Image ID {imageId} saved as '{outputFileName}'.");
        }

// Optional: clean up uploaded PDF from cloud storage
        pdfApi.DeleteFile(Path.Combine("Temp", pdfFileName));
    }
}

หมายเหตุ: ตัวอย่างโค้ดนี้แสดงการทำงานหลัก ก่อนนำไปใช้ในโครงการของคุณ ให้ตรวจสอบและอัปเดตเส้นทางไฟล์และค่าการกำหนดค่าต่าง ๆ ให้ตรงกับสภาพแวดล้อมจริงของคุณ ตรวจสอบว่าขึ้นตอนการพึ่งพาที่จำเป็นทั้งหมดได้ถูกติดตั้งอย่างถูกต้อง และทดสอบอย่างละเอียดในสภาพแวดล้อมการพัฒนา หากคุณพบปัญหาใด ๆ โปรดดูที่ เอกสารอย่างเป็นทางการ หรือ ติดต่อ ทีมสนับสนุน เพื่อขอความช่วยเหลือ

การดึงภาพจาก PDF ด้วย cURL และ REST API

ต่อไปนี้คือคำสั่ง cURL ที่เทียบเท่าซึ่งทำงานเดียวกันโดยไม่ต้องเขียนโค้ด C#

1. รับรองความถูกต้องและรับโทเค็นการเข้าถึง

curl -X POST "https://api.aspose.cloud/v3.0/oauth2/token?grant_type=client_credentials" \
     -u "YOUR_CLIENT_ID:YOUR_CLIENT_SECRET"

การตอบสนองมี access_token ที่ใช้ในการเรียกต่อไป

2. อัปโหลด PDF ต้นฉบับ

curl -X PUT "https://api.aspose.cloud/v3.0/pdf/storage/file/Temp/input.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -T "input.pdf"

3. รายการรูปภาพที่ฝังอยู่

curl -X GET "https://api.aspose.cloud/v3.0/pdf/input.pdf/images" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

การตอบสนอง JSON จะรวมอาร์เรย์ของ ID รูปภาพและรูปแบบ

4. ดาวน์โหลดแต่ละภาพ

curl -X GET "https://api.aspose.cloud/v3.0/pdf/input.pdf/images/1" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o "extracted_image_1.png"

แทนที่ 1 ด้วย ID ของรูปภาพจริงจากขั้นตอนก่อนหน้า. ทำซ้ำคำสั่งสำหรับทุก ID.

สำหรับรายละเอียดเพิ่มเติม ดูที่ เอกสาร API อย่างเป็นทางการ.

ตัวเลือกการกำหนดค่าสำหรับการสกัดภาพจาก PDF

การตั้งค่าโฟลเดอร์จัดเก็บ

คุณสามารถเปลี่ยนโฟลเดอร์การจัดเก็บเริ่มต้นโดยการแก้ไขเส้นทางในคำเรียก UploadFile และ DeleteFile ตัวอย่างเช่น ใช้ "Documents" แทน "Temp".

การเลือกรูปแบบภาพเป้าหมาย

SDK จะคืนค่ารูปแบบเดิม แต่คุณสามารถแปลงได้โดยระบุส่วนขยายที่แตกต่างเมื่อบันทึกไฟล์ ปรับตัวแปร format ในลูปดาวน์โหลดหากคุณต้องการผลลัพธ์ที่สม่ำเสมอ เช่น png

การควบคุมเวลาหมดของคำขอ

ไคลเอนต์ PdfApi ให้คุณตั้งค่า timeout แบบกำหนดเอง:

pdfApi.Configuration.Timeout = 300000; // 5 minutes

การเพิ่มค่า timeout จะช่วยเมื่อประมวลผล PDF ขนาดใหญ่มาก

บทสรุป

การดึงรูปภาพจากไฟล์ PDF ที่จัดเก็บในคลาวด์กลายเป็นเรื่องง่ายด้วย Aspose.PDF for .NET. SDK จัดการการตรวจสอบสิทธิ์, การจัดเก็บ, และการดึงรูปภาพ, ทำให้คุณสามารถมุ่งเน้นที่ตรรกะของแอปพลิเคชันของคุณได้. จำไว้ว่าให้รับใบอนุญาตที่เหมาะสมสำหรับการใช้งานในผลิตภัณฑ์; รายละเอียดราคาอยู่ในหน้าผลิตภัณฑ์, และคุณสามารถรับใบอนุญาตชั่วคราวจาก หน้าใบอนุญาตชั่วคราว. ด้วยโค้ดและตัวอย่าง cURL ที่ให้มา, คุณพร้อมที่จะรวมการดึงรูปภาพจาก PDF เข้าไปในบริการคลาวด์ .NET ใดก็ได้.

FAQs

ฉันจะดึงรูปภาพจาก PDF โดยใช้ Aspose.PDF Cloud SDK for .NET ได้อย่างไร?
ใช้เมธอด PdfApi.GetDocumentImages เพื่อแสดงรายการรูปภาพและ PdfApi.GetImage เพื่อดาวน์โหลดแต่ละรูปภาพ กระบวนการทำงานทั้งหมดแสดงในตัวอย่างโค้ดด้านบน.

ฉันสามารถดึงรูปภาพจาก PDF ได้โดยไม่ต้องเขียนโค้ดหรือไม่?
ใช่, การดำเนินการเดียวกันสามารถทำได้ด้วย REST API โดยใช้คำสั่ง cURL ตามที่แสดงในส่วน “Performing PDF Image Extraction via cURL and REST API”

รูปแบบภาพใดบ้างที่สามารถสกัดออกจาก PDF ได้?
API จะส่งคืนรูปแบบดั้งเดิมของแต่ละภาพที่ฝังอยู่ เช่น PNG, JPEG, BMP, หรือ TIFF. คุณสามารถตรวจสอบคุณสมบัติ ImageInfo.ImageFormat เพื่อกำหนดรูปแบบได้

ฉันต้องการใบอนุญาตเพื่อใช้งานในสภาพแวดล้อมการผลิตหรือไม่?
จำเป็นต้องมีใบอนุญาตเชิงพาณิชย์สำหรับการปรับใช้ในสภาพแวดล้อมการผลิต คุณสามารถดูราคาในหน้าผลิตภัณฑ์และรับใบอนุญาตชั่วคราวได้จาก หน้าลิขสิทธิ์ชั่วคราว

อ่านเพิ่มเติม