ทำงานกับรูปภาพ PDF โดยใช้ Java

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

Java API เพื่อเพิ่มและจัดการรูปภาพในรูปแบบ PDF - ดาวน์โหลดฟรี

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

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>21.2</version>
</dependency>

เพิ่มรูปภาพไปยังไฟล์ PDF ใน Java

ต่อไปนี้เป็นขั้นตอนในการเพิ่มรูปภาพในไฟล์ PDF ใน Java

  • ขั้นแรก สร้างอินสแตนซ์ของคลาส Document เพื่อโหลดเอกสาร PDF
  • รับ Page ที่คุณต้องการเพิ่มรูปภาพโดยใช้เมธอด Document.getPages().getItem(int)
  • โหลดไฟล์ภาพลงในวัตถุ FileInputStream
  • เพิ่มรูปภาพลงในทรัพยากรของเพจโดยใช้เมธอด Page.getResources().getImages().add(FileInputStream)
  • ใช้ตัวดำเนินการเพื่อวางภาพบนหน้า:
    1. ตัวดำเนินการ GSave เพื่อบันทึกสถานะกราฟิกปัจจุบัน
    2. ConcatenateMatrix เพื่อระบุตำแหน่งที่จะวางภาพ
    3. ตัวดำเนินการ Do เพื่อวาดภาพบนหน้า
    4. ตัวดำเนินการ GRestore เพื่อบันทึกสถานะกราฟิกที่อัปเดต
  • สุดท้าย บันทึกไฟล์ PDF ที่อัปเดตโดยใช้เมธอด Document.save(string)

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

// เปิดเอกสาร
Document pdfDocument1 = new Document("input.pdf");

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

// รับหน้าที่คุณต้องการเพิ่มรูปภาพ
Page page = pdfDocument1.getPages().get_Item(1);

// โหลดรูปภาพลงในสตรีม
java.io.FileInputStream imageStream = new java.io.FileInputStream(new java.io.File("input_image1.jpg"));

// เพิ่มรูปภาพไปยังคอลเลกชันรูปภาพของทรัพยากรหน้า
page.getResources().getImages().add(imageStream);

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

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

// การใช้ตัวดำเนินการ ConcatenateMatrix (concatenate matrix): กำหนดวิธีการวางรูปภาพ
page.getContents().add(new Operator.ConcatenateMatrix(matrix));
XImage ximage = page.getResources().getImages().get_Item(page.getResources().getImages().size());

// การใช้ตัวดำเนินการ Do: ตัวดำเนินการนี้วาดภาพ
page.getContents().add(new Operator.Do(ximage.getName()));

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

// บันทึก PDF ใหม่
pdfDocument1.save("Updated_document.pdf");

// ปิดสตรีมรูปภาพ
imageStream.close();

แยกรูปภาพออกจากไฟล์ PDF โดยใช้ Java

ต่อไปนี้เป็นขั้นตอนในการแยกรูปภาพจากเอกสาร PDF โดยใช้ Java

  • สร้างอินสแตนซ์ของคลาส Document เพื่อโหลดเอกสาร PDF
  • แยกรูปภาพที่ต้องการลงในวัตถุ XImage โดยใช้เมธอด Document.getPages().getItem(int).getResources().getImages().getItem(int)
  • คุณยังสามารถวนซ้ำคอลเลกชันรูปภาพเพื่อแยกและบันทึกภาพทั้งหมด
  • สุดท้าย บันทึกภาพที่แยกออกมาเป็นไฟล์โดยใช้ OutputStream

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

// เปิดเอกสาร
Document pdfDocument = new Document("input.pdf");

// แยกภาพเฉพาะ
XImage xImage = pdfDocument.getPages().get_Item(1).getResources().getImages().get_Item(1);

// สร้างวัตถุสตรีมเพื่อบันทึกรูปภาพที่ส่งออก
java.io.OutputStream output = new java.io.FileOutputStream("output.jpg");

// บันทึกภาพผลลัพธ์
xImage.save(output);

// ปิดสตรีม
output.close();

ลบรูปภาพออกจากไฟล์ PDF โดยใช้ Java

ต่อไปนี้เป็นขั้นตอนในการลบรูปภาพออกจากไฟล์ PDF โดยใช้ Java

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

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

// เปิดเอกสาร
Document pdfDocument = new Document("input.pdf");

// ลบภาพใดภาพหนึ่ง
pdfDocument.getPages().get_Item(1).getResources().getImages().delete(1);

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

แทนที่รูปภาพในไฟล์ PDF โดยใช้ Java

ต่อไปนี้เป็นขั้นตอนในการแทนที่รูปภาพในไฟล์ PDF โดยใช้ Java

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

// เปิดเอกสาร
Document pdfDocument = new Document("input.pdf");

// แทนที่รูปภาพเฉพาะ
pdfDocument.getPages().get_Item(1).getResources().getImages().replace(1, new java.io.FileInputStream(new java.io.File("aspose.png")));

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

Java API เพื่อเพิ่มรูปภาพใน PDF - รับใบอนุญาต API ฟรี

คุณสามารถลองใช้ Aspose.PDF for Java ได้ฟรีโดย ขอรับใบอนุญาตชั่วคราว

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีจัดการรูปภาพในไฟล์ PDF โดยใช้ Java คำแนะนำทีละขั้นตอนและตัวอย่างโค้ดแสดงวิธีแยก เพิ่ม ลบ และแทนที่รูปภาพในไฟล์ PDF คุณสามารถสำรวจคุณลักษณะอื่นๆ ของ Aspose.PDF for Java โดยใช้ เอกสารประกอบ ในกรณีที่มีข้อสงสัย คุณสามารถติดต่อเราผ่านทาง ฟอรัม

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