iText - การปรับขนาดภาพ
ในบทนี้เราจะดูวิธีการปรับขนาดภาพในเอกสาร PDF โดยใช้ไลบรารี iText
การปรับขนาดภาพใน PDF
คุณสามารถสร้างเอกสาร PDF เปล่าโดยการสร้างไฟล์ Documentชั้นเรียน. ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocument วัตถุเป็นพารามิเตอร์ของตัวสร้าง
ในการเพิ่มรูปภาพลงใน PDF ให้สร้างออบเจ็กต์ของรูปภาพที่จำเป็นต้องเพิ่มและเพิ่มโดยใช้ไฟล์ add() วิธีการของ Documentชั้นเรียน. คุณสามารถปรับขนาดภาพโดยใช้ไฟล์setAutoScale() วิธี.
ต่อไปนี้เป็นขั้นตอนในการปรับขนาดภาพที่มีอยู่ในเอกสาร PDF
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter
PdfWriterคลาสแทน DocWriter สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. คอนสตรัคเตอร์ของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงพา ธ ของไฟล์ที่จะสร้าง PDF
สร้างอินสแตนซ์คลาส PdfWriter โดยส่งค่าสตริง (แสดงถึงเส้นทางที่คุณต้องการสร้าง PDF) ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfWriter
String dest = "C:/itextExamples/autoScale.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: การสร้างวัตถุรูปภาพ
ในการสร้างวัตถุรูปภาพก่อนอื่นให้สร้างไฟล์ 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: การปรับขนาดภาพ
คุณสามารถปรับขนาดภาพโดยใช้ไฟล์ setAutoScale() วิธี.
// Setting the position of the image to the center of the page
image.setFixedPosition(100, 250);
ขั้นตอนที่ 6: การเพิ่มรูปภาพลงในเอกสาร
ตอนนี้เพิ่มไฟล์ image วัตถุที่สร้างขึ้นในขั้นตอนก่อนหน้าโดยใช้ add() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Adding image to the document
document.add(img);
ขั้นตอนที่ 7: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
โปรแกรม Java ต่อไปนี้จะสาธิตวิธีการปรับขนาดรูปภาพตามขนาดเอกสารบนเอกสาร PDF โดยใช้ไลบรารี iText สร้างเอกสาร PDF ที่มีชื่อautoScale.pdfเพิ่มรูปภาพลงไปปรับขนาดตามขนาดของหน้าบันทึกในเส้นทาง C:/itextExamples/.
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ SettingAutoScale.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 SettingAutoScale {
public static void main(String args[]) throws Exception{
// Creating a PdfWriter
String dest = "C:/itextExamples/positionOfImage.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document
Document document = new Document(pdfDoc);
// Creating an ImageData object
String imFile = "C:/itextExamples/logo.jpg";
ImageData data = ImageDataFactory.create(imFile);
// Creating an Image object
Image image = new Image(data);
// Setting the position of the image to the center of the page
image.setFixedPosition(100,250);
// Adding image to the document
document.add(image);
// Closing the document
document.close();
System.out.println("Image Scaled");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้
javac SettingAutoScale.java
java SettingAutoScale
เมื่อดำเนินการโปรแกรมด้านบนจะสร้างเอกสาร PDF ที่แสดงข้อความต่อไปนี้
Image Scaled
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง