ค้นหาและรับรูปภาพในไฟล์ PDF
การแนะนำ
คุณกำลังมองหาวิธีง่ายๆ ในการแยกภาพจากไฟล์ PDF โดยใช้ Aspose.PDF สำหรับ .NET อยู่ใช่หรือไม่ คุณมาถูกที่แล้ว! ในบทความนี้ เราจะเจาะลึกรายละเอียดเกี่ยวกับวิธีการค้นหาและดึงภาพที่ฝังอยู่ในเอกสาร PDF อย่างมีประสิทธิภาพ ไม่ว่าคุณจะเป็นนักพัฒนาที่มีประสบการณ์หรือเพิ่งเริ่มหัดจัดการ PDF คู่มือนี้จะแนะนำคุณทีละขั้นตอนตลอดกระบวนการ
ข้อกำหนดเบื้องต้น
ก่อนที่เราจะลงรายละเอียดเกี่ยวกับโค้ด มีข้อกำหนดเบื้องต้นบางประการที่คุณจำเป็นต้องตรวจสอบในรายการของคุณ
กรอบงาน .NET
ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง .NET Framework บนเครื่องของคุณแล้ว Aspose.PDF สำหรับ .NET เข้ากันได้กับเวอร์ชันต่างๆ แต่ควรใช้เวอร์ชันที่เสถียรล่าสุดเพื่อเพลิดเพลินไปกับคุณสมบัติและการปรับปรุงล่าสุดทั้งหมด
ห้องสมุด Aspose.PDF
คุณจะต้องเข้าถึงไลบรารี Aspose.PDF หากคุณยังไม่ได้เข้าถึง คุณสามารถดาวน์โหลดได้จากลิงก์นี้:ดาวน์โหลด Aspose.PDF สำหรับ .NET นอกจากนี้ คุณยังสามารถสำรวจได้ทดลองใช้ฟรีหนึ่งเดือน เพื่อเริ่มต้นโครงการของคุณโดยไม่มีค่าใช้จ่ายใดๆ
สภาพแวดล้อมการพัฒนา
ควรตั้งค่าสภาพแวดล้อมการพัฒนาที่เหมาะสม เช่น Visual Studio หรือ IDE ใดๆ ตามที่คุณต้องการให้เขียนและรันโค้ดได้อย่างราบรื่น
แพ็คเกจนำเข้า
หากต้องการใช้งาน Aspose.PDF สำหรับ .NET ก่อนอื่นคุณต้องนำเข้าเนมสเปซที่เหมาะสมลงในโปรเจ็กต์ของคุณ นี่คือสิ่งที่คุณต้องทำ:
using System.IO;
using Aspose.Pdf;
using System;
แพ็คเกจเหล่านี้แต่ละอันมีวัตถุประสงค์เฉพาะในการจัดการเอกสาร PDFAspose.Pdf
เนมสเปซถือเป็นรากฐานสำคัญของการดำเนินการของคุณ ในขณะที่อีกสองพื้นที่ช่วยจัดการกับรูปภาพและข้อความภายใน PDF
ขั้นตอนที่ 1: ตั้งค่าเส้นทางเอกสารของคุณ
ก่อนอื่น คุณต้องกำหนดเส้นทางที่ไฟล์ PDF ของคุณตั้งอยู่ โค้ดนี้จะกำหนดเส้นทางดังกล่าว:
string dataDir = "YOUR DOCUMENT DIRECTORY";
แทนที่ “ไดเรกทอรีเอกสารของคุณ” ด้วยเส้นทางจริงไปยังไดเรกทอรีที่มีไฟล์ PDF ของคุณ เช่นC:\Documents\
.
ขั้นตอนที่ 2: เปิดเอกสาร PDF
ขั้นต่อไป คุณจะต้องโหลดเอกสาร PDF ลงในแอปพลิเคชันของคุณ ซึ่งทำได้โดยสร้างไฟล์ใหม่Document
อินสแตนซ์พร้อมเส้นทางไฟล์ที่คุณเพิ่งระบุ:
Aspose.Pdf.Document doc = new Aspose.Pdf.Document(dataDir + "SearchAndGetImages.pdf");
ขั้นตอนที่ 3: สร้าง ImagePlacementAbsorber
ในการค้นหารูปภาพภายใน PDF คุณต้องมีImagePlacementAbsorber
วัตถุ คลาสนี้ช่วยในการดูดซับภาพจาก PDF ในระหว่างกระบวนการแยก:
ImagePlacementAbsorber abs = new ImagePlacementAbsorber();
ขั้นตอนที่ 4: ยอมรับตัวดูดซับสำหรับทุกหน้า
ขั้นตอนนี้มีความสำคัญมากเพราะจะบอกให้ทราบDocument
เพื่อใช้ตัวดูดซับภาพกับทุกหน้า เพื่อให้แน่ใจว่าภาพใดๆ ที่วางอยู่ในเอกสารจะถูกระบุ:
doc.Pages.Accept(abs);
ขั้นตอนที่ 5: วนซ้ำตำแหน่งการวางภาพ
เมื่อคุณได้ดูภาพต่างๆ แล้ว ก็ได้เวลาเจาะลึกภาพเหล่านั้น คุณจะวนซ้ำตำแหน่งภาพแต่ละภาพที่แยกออกมาจาก PDF:
foreach (ImagePlacement imagePlacement in abs.ImagePlacements)
{
// ขั้นตอนเพิ่มเติมในการรับคุณสมบัติของภาพ
}
ขั้นตอนที่ 6: ดึงคุณสมบัติของภาพ
ภายในลูป คุณสามารถเริ่มเรียกค้นคุณสมบัติที่มีค่าเกี่ยวกับแต่ละภาพได้ โดยใช้imagePlacement
วัตถุ คุณสามารถเข้าถึงขนาดและความละเอียดได้:
XImage image = imagePlacement.Image; // รับภาพ
Console.Out.WriteLine("image width:" + imagePlacement.Rectangle.Width);
Console.Out.WriteLine("image height:" + imagePlacement.Rectangle.Height);
Console.Out.WriteLine("image LLX:" + imagePlacement.Rectangle.LLX);
Console.Out.WriteLine("image LLY:" + imagePlacement.Rectangle.LLY);
Console.Out.WriteLine("image horizontal resolution:" + imagePlacement.Resolution.X);
Console.Out.WriteLine("image vertical resolution:" + imagePlacement.Resolution.Y);
บทสรุป
และแล้วคุณก็ทำได้! ด้วยการทำตามขั้นตอนเหล่านี้ คุณสามารถค้นหาและดึงภาพจากไฟล์ PDF ได้อย่างมีประสิทธิภาพโดยใช้ Aspose.PDF สำหรับ .NET ด้วยโค้ดเพียงไม่กี่บรรทัด คุณสามารถดึงภาพที่มีคุณค่าและคุณสมบัติของภาพเหล่านั้นออกมาได้ ซึ่งจะเปิดประตูสู่ความเป็นไปได้มากมายในแอปพลิเคชันของคุณ
คำถามที่พบบ่อย
ไลบรารี Aspose.PDF สามารถใช้งานได้ฟรีหรือไม่?
Aspose.PDF สำหรับ .NET เป็นไลบรารีที่ต้องชำระเงิน แต่คุณสามารถดาวน์โหลดรุ่นทดลองใช้งานฟรีได้ 1 เดือน
ฉันสามารถดึงภาพจากไฟล์ PDF ที่มีการป้องกันด้วยรหัสผ่านได้หรือไม่
ใช่ แต่คุณต้องระบุรหัสผ่านขณะเปิดเอกสาร
สามารถแยกประเภทรูปภาพใดออกจาก PDF ได้บ้าง?
สามารถแยกรูปภาพที่ฝังไว้ทั้งหมดออกมาได้โดยไม่คำนึงถึงรูปแบบ (JPEG, PNG เป็นต้น)
จำนวนรูปภาพที่สามารถแยกออกมาได้มีจำกัดหรือไม่?
ไม่มีข้อจำกัดตายตัว ขึ้นอยู่กับไฟล์ PDF เอง
ฉันสามารถบันทึกภาพที่แยกออกมาลงในดิสก์ได้หรือไม่
ใช่ คุณสามารถบันทึกภาพลงในดิสก์โดยใช้XImage
วัตถุในโค้ดของคุณ