iText - การหมุนภาพ
ในบทนี้เราจะดูวิธีแทรกรูปภาพในเอกสาร PDF และวิธีหมุนรูปภาพโดยใช้ฟังก์ชันที่มีอยู่ในไลบรารี iText
การหมุนรูปภาพใน PDF
คุณสามารถสร้างเอกสาร PDF เปล่าโดยการสร้างไฟล์ Documentชั้นเรียน. ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocument วัตถุเป็นพารามิเตอร์ของตัวสร้าง
ในการเพิ่มรูปภาพลงใน PDF ให้สร้างออบเจ็กต์ของรูปภาพที่จำเป็นต้องเพิ่มและเพิ่มโดยใช้ไฟล์ add() วิธีการของ Documentชั้นเรียน. คุณสามารถหมุนภาพโดยใช้ไฟล์setRotationAngle() วิธี.
ต่อไปนี้เป็นขั้นตอนในการหมุนภาพในเอกสาร PDF
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter
PdfWriterคลาสแทน DocWriter สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. คอนสตรัคเตอร์ของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงพา ธ ของไฟล์ที่จะสร้าง PDF
สร้างอินสแตนซ์คลาส PdfWriter โดยส่งค่าสตริง (แสดงถึงเส้นทางที่คุณต้องการสร้าง PDF) ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfWriter
String dest = "C:/itextExamples/rotatingImage.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 objectเป็นพารามิเตอร์ของตัวสร้างดังที่แสดงด้านล่าง
// Creating an Image object
Image img = new Image(data);
ขั้นตอนที่ 5: หมุนภาพ
คุณสามารถหมุนภาพโดยใช้ไฟล์ setRotationAngle()วิธี. ในวิธีนี้คุณต้องส่งจำนวนเต็มแทนมุมการหมุนที่คุณต้องการหมุนภาพ
// Rotating the image
image.setRotationAngle(45);
ขั้นตอนที่ 6: การเพิ่มรูปภาพลงในเอกสาร
ตอนนี้เพิ่มวัตถุรูปภาพที่สร้างในขั้นตอนก่อนหน้าโดยใช้ไฟล์ add() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Adding image to the document
document.add(img);
ขั้นตอนที่ 7: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
โปรแกรม Java ต่อไปนี้สาธิตวิธีการหมุนภาพตามมุมที่กำหนดบนเอกสาร PDF โดยใช้ไลบรารี iText
สร้างเอกสาร PDF ที่มีชื่อ rotatingImage.pdfเพิ่มภาพหมุนและบันทึกในเส้นทาง C:/itextExamples/.
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ RotatingImage.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 RotatingImage {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/rotatingImage.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);
// Rotating the image
image.setRotationAngle(45);
// Adding image to the document
document.add(image);
// Closing the document
document.close();
System.out.println("Image rotated");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -
javac RotatingImage.java
java RotatingImage
เมื่อดำเนินการโปรแกรมด้านบนจะสร้างเอกสาร PDF ที่แสดงข้อความต่อไปนี้
Image Rotated
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง