iText - การเพิ่มรูปภาพเป็น PDF

ในบทนี้เราจะดูวิธีการเพิ่มรูปภาพลงในเอกสาร PDF โดยใช้ไลบรารี iText

การเพิ่มรูปภาพลงใน Pdf

คุณสามารถสร้างเอกสาร PDF เปล่าโดยการสร้างไฟล์ Documentชั้นเรียน ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocumentวัตถุเป็นพารามิเตอร์ไปยังตัวสร้าง ในการเพิ่มรูปภาพลงใน PDF ให้สร้างออบเจ็กต์ของรูปภาพที่จำเป็นต้องเพิ่มและเพิ่มโดยใช้ไฟล์add() วิธีการของ Document ชั้นเรียน

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

ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter

PdfWriterคลาสแทน DocWriter สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. คอนสตรัคเตอร์ของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงพา ธ ของไฟล์ที่จะสร้าง PDF

สร้างอินสแตนซ์คลาส PdfWriter โดยส่งค่าสตริง (แสดงถึงเส้นทางที่คุณต้องการสร้าง PDF) ไปยังตัวสร้างดังที่แสดงด้านล่าง

// Creating a PdfWriter 
String dest = "C:/itextExamples/addingImage.pdf"; 
PdfWriter writer = new PdfWriter(dest);

เมื่อออบเจ็กต์ประเภทนี้ถูกส่งผ่านไปยัง PdfDocument (คลาส) ทุกองค์ประกอบที่เพิ่มลงในเอกสารนี้จะถูกเขียนลงในไฟล์ที่ระบุ

ขั้นตอนที่ 2: การสร้างวัตถุ PdfDocument

PdfDocumentคลาสคือคลาสที่แสดงถึงเอกสาร PDF ใน iText คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. ในการสร้างอินสแตนซ์คลาสนี้ (ในโหมดการเขียน) คุณต้องส่งผ่านอ็อบเจ็กต์ของคลาสPdfWriter ไปยังผู้สร้าง

สร้างอินสแตนซ์คลาส PdfDocument โดยส่งออบเจ็กต์ PdfWriter ที่สร้างไว้ข้างต้นไปยังตัวสร้างดังที่แสดงด้านล่าง

// Creating a PdfDocument  
PdfDocument pdfDoc = new PdfDocument(writer);

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

ขั้นตอนที่ 3: การสร้างวัตถุเอกสาร

Document คลาสของแพ็คเกจ com.itextpdf.layoutเป็นองค์ประกอบหลักในขณะที่สร้าง PDF แบบพอเพียง หนึ่งในตัวสร้างของคลาสนี้ยอมรับอ็อบเจ็กต์ของคลาส PdfDocument

เริ่มต้นไฟล์ Document คลาสโดยส่งผ่านวัตถุของคลาส PdfDocument สร้างขึ้นในขั้นตอนก่อนหน้าดังที่แสดงด้านล่าง

// Creating a Document   Document 
document = new Document(pdfDoc);

ขั้นตอนที่ 4: การสร้างวัตถุรูปภาพ

เพื่อสร้างไฟล์ image ก่อนอื่นให้สร้างไฟล์ ImageData วัตถุโดยใช้ create() วิธีการของ ImageDataFactoryชั้นเรียน ในฐานะพารามิเตอร์ของวิธีนี้ให้ส่งพารามิเตอร์สตริงที่แสดงเส้นทางของรูปภาพดังที่แสดงด้านล่าง

// Creating an ImageData object 
String imageFile = "C:/itextExamples/javafxLogo.jpg"; 
ImageData data = ImageDataFactory.create(imageFile);

ตอนนี้สร้างอินสแตนซ์ไฟล์ Image คลาสของ com.itextpdf.layout.elementแพ็คเกจ ในขณะที่สร้างอินสแตนซ์ให้ส่งสิ่งที่สร้างไว้ข้างต้นImageData วัตถุเป็นพารามิเตอร์ของตัวสร้างดังที่แสดงด้านล่าง

// Creating an Image object 
Image img = new Image(data);

ขั้นตอนที่ 5: การเพิ่มรูปภาพลงในเอกสาร

เพิ่มออบเจ็กต์รูปภาพที่สร้างในขั้นตอนก่อนหน้าโดยใช้ไฟล์ add() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง

// Adding image to the document 
document.add(img);

ขั้นตอนที่ 6: การปิดเอกสาร

ปิดเอกสารโดยใช้ close() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง

// Closing the document 
document.close();

ตัวอย่าง

โปรแกรม Java ต่อไปนี้สาธิตวิธีการเพิ่มรูปภาพลงในเอกสาร PDF โดยใช้ไลบรารี iText สร้างเอกสาร PDF ที่มีชื่อaddingImage.pdfเพิ่มรูปภาพและบันทึกไว้ในเส้นทาง C:/itextExamples/.

บันทึกรหัสนี้ในไฟล์ที่มีชื่อ AddingImage.java.

import com.itextpdf.io.image.ImageData; 
import com.itextpdf.io.image.ImageDataFactory; 

import com.itextpdf.kernel.pdf.PdfDocument; 
import com.itextpdf.kernel.pdf.PdfWriter;

import com.itextpdf.layout.Document; 
import com.itextpdf.layout.element.Image;  

public class AddingImage {      
   public static void main(String args[]) throws Exception {              
      
      // Creating a PdfWriter       
      String dest = "C:/itextExamples/addingImage.pdf";       
      PdfWriter writer = new PdfWriter(dest);        
      
      // Creating a PdfDocument       
      PdfDocument pdf = new PdfDocument(writer);              
      
      // Creating a Document        
      Document document = new Document(pdf);              
      
      // Creating an ImageData object       
      String imFile = "C:/itextExamples/logo.jpg";       
      ImageData data = ImageDataFactory.create(imFile);              
      
      // Creating an Image object        
      Image image = new Image(data);                        
      
      // Adding image to the document       
      document.add(image);              
      
      // Closing the document       
      document.close();              
      
      System.out.println("Image added");    
   } 
}

คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -

javac AddingImage.java 
java AddingImage

เมื่อดำเนินการโปรแกรมข้างต้นจะสร้างเอกสาร PDF ที่แสดงข้อความต่อไปนี้

Image added

หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง