ทำงานกับรูปภาพใน PDF C#

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

C# API สำหรับเพิ่ม ลบ และแทนที่รูปภาพใน PDF - ดาวน์โหลดฟรี

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

PM> Install-Package Aspose.Pdf

เพิ่มรูปภาพในไฟล์ PDF ใน C# .NET

ต่อไปนี้เป็นขั้นตอนในการเพิ่มรูปภาพไปยังไฟล์ PDF โดยใช้ Aspose.PDF for .NET

  • ใช้คลาส Document เพื่อสร้างใหม่หรือโหลดไฟล์ PDF ที่มีอยู่
  • รับการอ้างอิงของหน้าที่ต้องการในวัตถุ หน้า
  • เพิ่มรูปภาพไปยังคอลเลกชัน ทรัพยากร ของเพจ
  • ใช้ตัวดำเนินการต่อไปนี้เพื่อวางภาพบนหน้า:
    • GSave operator to save the current graphical state.
    • ConcatenateMatrix operator to specify where the image is to be placed.
    • ทำ operator to draw the image on the page.
    • GRestore operator to save the updated graphical state.
  • บันทึกไฟล์ PDF ที่อัปเดตโดยใช้เมธอด Document.Save(String)

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเพิ่มรูปภาพในไฟล์ PDF โดยใช้ C#

// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// เปิดเอกสาร
Document pdfDocument = new Document("AddImage.pdf");

// ตั้งค่าพิกัด
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;

// รับหน้าที่ต้องการเพิ่มรูปภาพ
Page page = pdfDocument.Pages[1];

// โหลดรูปภาพลงในสตรีม
FileStream imageStream = new FileStream("aspose-logo.jpg", FileMode.Open);

// เพิ่มรูปภาพไปยังคอลเลกชันรูปภาพของทรัพยากรของเพจ
page.Resources.Images.Add(imageStream);

// การใช้ตัวดำเนินการ GSave: ตัวดำเนินการนี้บันทึกสถานะกราฟิกปัจจุบัน
page.Contents.Add(new Aspose.Pdf.Operators.GSave());

// สร้างวัตถุสี่เหลี่ยมผืนผ้าและเมทริกซ์
Aspose.Pdf.Rectangle rectangle = new Aspose.Pdf.Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] { rectangle.URX - rectangle.LLX, 0, 0, rectangle.URY - rectangle.LLY, rectangle.LLX, rectangle.LLY });

// การใช้ตัวดำเนินการ ConcatenateMatrix (concatenate matrix): กำหนดวิธีการวางรูปภาพ
page.Contents.Add(new Aspose.Pdf.Operators.ConcatenateMatrix(matrix));
XImage ximage = page.Resources.Images[page.Resources.Images.Count];

// การใช้ตัวดำเนินการ Do: ตัวดำเนินการนี้วาดภาพ
page.Contents.Add(new Aspose.Pdf.Operators.Do(ximage.Name));

// การใช้ตัวดำเนินการ GRestore: ตัวดำเนินการนี้จะกู้คืนสถานะกราฟิก
page.Contents.Add(new Aspose.Pdf.Operators.GRestore());

// บันทึกเอกสารที่อัปเดต
pdfDocument.Save("AddImage_out.pdf");

แยกรูปภาพจาก PDF ใน C

ในกรณีที่คุณต้องการแยกรูปภาพทั้งหมดออกจากไฟล์ PDF คุณสามารถทำได้โดยทำตามขั้นตอนด้านล่าง

  • ใช้คลาส Document เพื่อโหลดไฟล์ PDF ที่มีอยู่
  • รับภาพที่ต้องการในวัตถุ XImage จากคอลเลกชัน ทรัพยากร ของหน้าใดหน้าหนึ่งโดยใช้ดัชนี
  • บันทึกภาพที่แยกออกมาในรูปแบบที่ต้องการโดยใช้เมธอด XImage.Save(FileStream, ImageFormat)

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแยกรูปภาพจาก PDF โดยใช้ C#

// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// เปิดเอกสาร
Document pdfDocument = new Document("ExtractImages.pdf");

// แยกภาพเฉพาะ
XImage xImage = pdfDocument.Pages[1].Resources.Images[1];

FileStream outputImage = new FileStream("output.jpg", FileMode.Create);

// บันทึกภาพเอาต์พุต
xImage.Save(outputImage, ImageFormat.Jpeg);
outputImage.Close();

ลบรูปภาพออกจาก PDF ใน C#

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

  • โหลดไฟล์ PDF โดยใช้คลาส Document
  • ลบรูปภาพโดยใช้วิธีใดวิธีหนึ่งต่อไปนี้
  • บันทึกไฟล์ PDF ที่อัปเดตโดยใช้เมธอด Document.Save(String)

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีลบรูปภาพออกจาก PDF โดยใช้ C#

// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// เปิดเอกสาร
Document pdfDocument = new Document("DeleteImages.pdf");

// ลบภาพใดภาพหนึ่ง
pdfDocument.Pages[1].Resources.Images.Delete(1);

// บันทึกไฟล์ PDF ที่อัปเดต
pdfDocument.Save("output.pdf");

แทนที่รูปภาพใน PDF ใน C#

Aspose.PDF for .NET ยังให้คุณแทนที่รูปภาพเฉพาะใน PDF สำหรับสิ่งนี้ คุณสามารถแทนที่รูปภาพในคอลเลกชันรูปภาพของเพจได้ ต่อไปนี้เป็นขั้นตอนในการแทนที่รูปภาพใน PDF โดยใช้ C#

  • โหลดไฟล์ PDF โดยใช้คลาส Document
  • แทนที่รูปภาพที่ต้องการโดยใช้เมธอด [Document.Pages1.Resources.Images.Replace(Int32, Stream, Int32, Boolean)]24
  • บันทึกไฟล์ PDF ที่อัปเดตโดยใช้เมธอด Document.Save(String)

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแทนที่รูปภาพใน PDF โดยใช้ C#

// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// เปิดเอกสาร
Document pdfDocument = new Document("input.pdf");

// แทนที่รูปภาพเฉพาะ
pdfDocument.Pages[1].Resources.Images.Replace(1, new FileStream("lovely.jpg", FileMode.Open));

// บันทึกไฟล์ PDF ที่อัปเดต
pdfDocument.Save("output.pdf");

C# .NET PDF API - รับใบอนุญาตฟรี

คุณสามารถ รับใบอนุญาตชั่วคราวได้ฟรี เพื่อทดลองใช้ API โดยไม่มีข้อจำกัดในการประเมิน

บทสรุป

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

ดูสิ่งนี้ด้วย