iText - คู่มือฉบับย่อ
Portable Document Format (PDF) เป็นรูปแบบไฟล์ที่ช่วยในการนำเสนอข้อมูลในลักษณะที่ไม่ขึ้นกับซอฟต์แวร์แอปพลิเคชันฮาร์ดแวร์และระบบปฏิบัติการ ไฟล์ PDF แต่ละไฟล์มีคำอธิบายของเอกสารแบบแบนโครงร่างคงที่รวมถึงข้อความแบบอักษรกราฟิกและข้อมูลอื่น ๆ ที่จำเป็นในการแสดง
มีไลบรารีหลายแห่งสำหรับสร้างและจัดการเอกสาร PDF ผ่านโปรแกรมเช่น -
Adobe PDF Library- ไลบรารีนี้มี API ในภาษาต่างๆเช่น C ++, .NET และ Java เมื่อใช้สิ่งนี้เราสามารถแก้ไขดูพิมพ์และแยกข้อความจากเอกสาร PDF
Formatting Objects Processor- ตัวจัดรูปแบบการพิมพ์โอเพ่นซอร์สขับเคลื่อนโดย XSL Formatting Objects และตัวจัดรูปแบบอิสระเอาต์พุต เป้าหมายผลลัพธ์หลักคือ PDF
PDF Box- Apache PDFBox เป็นไลบรารี Java แบบโอเพนซอร์สที่รองรับการพัฒนาและการแปลงเอกสาร PDF เมื่อใช้ไลบรารีนี้คุณสามารถพัฒนาโปรแกรม Java ที่สร้างแปลงและจัดการเอกสาร PDF
Jasper Reports - เป็นเครื่องมือรายงาน Java ที่สร้างรายงานในเอกสาร PDF รวมถึง Microsoft Excel, RTF, ODT, ค่าที่คั่นด้วยจุลภาคและไฟล์ XML
iText คืออะไร?
เช่นเดียวกับ iText ของซอฟต์แวร์ที่ระบุไว้ข้างต้นคือไลบรารี Java PDF ที่ใช้ซึ่งคุณสามารถพัฒนาโปรแกรม Java ที่สร้างแปลงและจัดการเอกสาร PDF ได้
คุณสมบัติของ iText
ต่อไปนี้เป็นคุณสมบัติเด่นของไลบรารี iText -
Interactive- iText ให้คุณเรียน (API) เพื่อสร้างเอกสาร PDF แบบโต้ตอบ ใช้สิ่งเหล่านี้เพื่อสร้างแผนที่และหนังสือ
Adding bookmarks, page numbers, etc - การใช้ iText คุณสามารถเพิ่มบุ๊กมาร์กหมายเลขหน้าและลายน้ำได้
Split & Merge - การใช้ iText คุณสามารถแบ่ง PDF ที่มีอยู่ออกเป็น PDF หลาย ๆ ไฟล์และยังเพิ่ม / เชื่อมหน้าเพิ่มเติมเข้าด้วยกัน
Fill Forms - การใช้ iText คุณสามารถกรอกแบบฟอร์มโต้ตอบในเอกสาร PDF
Save as Image - การใช้ iText คุณสามารถบันทึก PDF เป็นไฟล์ภาพเช่น PNG หรือ JPEG
Canvas - คลัง iText มีคลาส Canvas ให้คุณใช้ซึ่งคุณสามารถวาดรูปทรงเรขาคณิตต่างๆบนเอกสาร PDF เช่นวงกลมเส้น ฯลฯ
Create PDFs- ใช้ iText คุณสามารถสร้างไฟล์ PDF ใหม่จากโปรแกรม Java ของคุณ คุณสามารถใส่รูปภาพและแบบอักษรได้ด้วย
สภาพแวดล้อม IText
ทำตามขั้นตอนด้านล่างเพื่อตั้งค่าสภาพแวดล้อม iText บน Eclipse
Step 1 - ติดตั้ง Eclipse และเปิดโปรเจ็กต์ใหม่ตามที่แสดงด้านล่าง
Step 2 - สร้างไฟล์ iTextSample โครงการดังภาพด้านล่าง
Step 3- คลิกขวาที่โครงการและแปลงเป็นโครงการ Maven ดังที่แสดงด้านล่าง เมื่อคุณแปลงเป็นโครงการ Maven มันจะให้ไฟล์pom.xmlที่คุณต้องพูดถึงการอ้างอิงที่จำเป็น หลังจากนั้นjar ไฟล์ของการอ้างอิงเหล่านั้นจะถูกดาวน์โหลดลงในโปรเจ็กต์ของคุณโดยอัตโนมัติ
Step 4 - ตอนนี้ใน pom.xml ของโครงการคัดลอกและวางเนื้อหาต่อไปนี้ (การอ้างอิงสำหรับแอปพลิเคชัน iText) และรีเฟรชโครงการ
Using pom.xml
แปลงโครงการเป็นโครงการ Maven และเพิ่มเนื้อหาต่อไปนี้ลงในไฟล์ pom.xml.
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>SanthoshExample</groupId>
<artifactId>SanthoshExample</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!-- always needed -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>kernel</artifactId>
<version>7.0.2</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>io</artifactId>
<version>7.0.2</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>layout</artifactId>
<version>7.0.2</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>forms</artifactId>
<version>7.0.2</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>pdfa</artifactId>
<version>7.0.2</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>sign</artifactId>
<version>7.0.2</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>barcodes</artifactId>
<version>7.0.2</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>font-asian</artifactId>
<version>7.0.2</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>hyph</artifactId>
<version>7.0.2</version>
</dependency>
</dependencies>
</project>
สุดท้ายหากคุณสังเกตการอ้างอิงของ Maven คุณสามารถสังเกตได้ว่าจำเป็นทั้งหมด jar ดาวน์โหลดไฟล์แล้ว
ตอนนี้ให้เราเข้าใจวิธีสร้างเอกสาร PDF โดยใช้ไลบรารี iText
การสร้างเอกสาร PDF เปล่า
คุณสามารถสร้างเอกสาร PDF เปล่าได้โดยการสร้างไฟล์ Documentชั้นเรียน. ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocument วัตถุเป็นพารามิเตอร์ของตัวสร้าง
ต่อไปนี้เป็นขั้นตอนในการสร้างเอกสาร PDF เปล่า
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter
PdfWriterคลาสแทน Doc Writer สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. ตัวสร้างของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงเส้นทางของไฟล์ที่จะสร้าง PDF
สร้างอินสแตนซ์คลาส PdfWriter โดยส่งค่าสตริง (แสดงถึงเส้นทางที่คุณต้องการสร้าง PDF) ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfWriter
String dest = "C:/itextExamples/sample.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: การเพิ่มหน้าว่าง
addNewPage() วิธีการของ PdfDocument คลาสใช้เพื่อสร้างหน้าว่างในเอกสาร PDF
เพิ่มหน้าว่างในเอกสาร PDF ที่สร้างในขั้นตอนก่อนหน้าดังที่แสดงด้านล่าง
// Adding an empty page
pdfDoc.addNewPage();
ขั้นตอนที่ 4: การสร้างวัตถุเอกสาร
Document คลาสของแพ็คเกจ com.itextpdf.layoutเป็นองค์ประกอบหลักในขณะที่สร้าง PDF แบบพอเพียง หนึ่งในตัวสร้างของคลาสนี้ยอมรับอ็อบเจ็กต์ของคลาส PdfDocument
เริ่มต้นไฟล์ Document คลาสโดยส่งผ่านวัตถุของคลาส PdfDocument สร้างขึ้นในขั้นตอนก่อนหน้าตามที่แสดงด้านล่าง
// Creating a Document
Document document = new Document(pdfDoc);
ขั้นตอนที่ 5: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document คลาสดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม Java ที่สาธิตการสร้างเอกสาร PDF สร้างเอกสาร PDF ที่มีชื่อsample.pdfเพิ่มหน้าว่างลงในหน้านั้นและบันทึกไว้ในเส้นทาง C:/itextExamples/
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ create_PDF.java.
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
public class create_PDF {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/sample.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
// Adding a new page
pdfDoc.addNewPage();
// Creating a Document
Document document = new Document(pdfDoc);
// Closing the document
document.close();
System.out.println("PDF Created");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -
javac create_PDF.java
java create_PDF
เมื่อดำเนินการโปรแกรมด้านบนจะสร้างเอกสาร PDF โดยแสดงข้อความต่อไปนี้
PDF created
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง
เนื่องจากนี่เป็นเอกสารเปล่าหากคุณพยายามเปิดเอกสารนี้เอกสารนี้จะแสดงข้อความแสดงข้อผิดพลาดดังที่แสดงในภาพหน้าจอต่อไปนี้
ในบทนี้เราจะดูวิธีสร้างเอกสาร PDF ด้วย AreaBreak โดยใช้ไลบรารี iText
การสร้าง AreaBreak
คุณสามารถสร้างเอกสาร PDF เปล่าได้โดยการสร้างไฟล์ Documentชั้นเรียน. ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocumentออบเจ็กต์เป็นพารามิเตอร์ไปยังตัวสร้าง จากนั้นในการเพิ่มพื้นที่ว่างลงในเอกสารคุณต้องสร้างอินสแตนซ์ไฟล์AreaBreak ชั้นเรียนและ add วัตถุนี้ในการจัดทำเอกสารโดยใช้ไฟล์ add() วิธี.
ต่อไปนี้เป็นขั้นตอนในการสร้างเอกสาร PDF เปล่าด้วย AreaBreak
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter
PdfWriter คลาสแสดงถึง Doc Writer สำหรับ PDF คลาสนี้เป็นของแพ็กเกจ com.itextpdf.kernel.pdf. ตัวสร้างของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงเส้นทางของไฟล์ที่จะสร้าง PDF
สร้างอินสแตนซ์คลาส PdfWriter โดยการส่งค่าสตริงที่แสดงเส้นทางที่คุณต้องการสร้าง PDF ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfWriter
String dest = "C:/itextExamples/addingAreaBreak.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: การสร้างวัตถุแบ่งพื้นที่
AreaBreak คลาสเป็นของแพ็คเกจ com.itextpdf.layout.element. ในการสร้างอินสแตนซ์คลาสนี้พื้นที่บริบทปัจจุบันจะถูกยกเลิกและพื้นที่บริบทใหม่จะถูกสร้างขึ้นโดยมีขนาดเท่ากัน (ในกรณีที่เราใช้ตัวสร้างเริ่มต้น)
เริ่มต้นไฟล์ AreaBreak คลาสดังที่แสดงด้านล่าง
// Creating an Area Break
AreaBreak aB = new AreaBreak();
ขั้นตอนที่ 5: การเพิ่ม AreaBreak
เพิ่มไฟล์ areabreak สร้างวัตถุในขั้นตอนก่อนหน้าโดยใช้ add() วิธีการของคลาส Document ดังที่แสดงด้านล่าง
// Adding area break to the PDF
document.add(aB);
ขั้นตอนที่ 6: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document คลาสดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
โปรแกรม Java ต่อไปนี้สาธิตวิธีสร้างเอกสาร PDF ด้วย AreaBreak โดยใช้ไลบรารี iText สร้างเอกสาร PDF ที่มีชื่อaddingAreaBreak.pdfเพิ่มไฟล์ areabreak ไปที่มันและบันทึกไว้ในเส้นทาง C:/itextExamples/.
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ AddingAreaBreak.java.
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.AreaBreak;
public class AddingAreaBreak {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/addingAreaBreak.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument
PdfDocument pdf = new PdfDocument(writer);
// Creating a Document by passing PdfDocument object to its constructor
Document document = new Document(pdf);
// Creating an Area Break
AreaBreak aB = new AreaBreak();
// Adding area break to the PDF
document.add(aB);
// Closing the document
document.close();
System.out.println("Pdf created");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -
javac AddingAreaBreak.java
java AddingAreaBreak
เมื่อดำเนินการโปรแกรมด้านบนจะสร้างเอกสาร PDF โดยแสดงข้อความต่อไปนี้
Pdf Created
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง
ในบทนี้เราจะดูวิธีสร้างเอกสาร PDF และเพิ่มย่อหน้าโดยใช้ไลบรารี iText
การสร้างย่อหน้า
คุณสามารถสร้างเอกสาร PDF เปล่าได้โดยการสร้างไฟล์ Documentชั้นเรียน. ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocumentออบเจ็กต์เป็นพารามิเตอร์ไปยังตัวสร้าง จากนั้นในการเพิ่มย่อหน้าลงในเอกสารคุณต้องสร้างอินสแตนซ์ไฟล์Paragraph คลาสและเพิ่มวัตถุนี้ลงในเอกสารโดยใช้ add() วิธี.
ต่อไปนี้เป็นขั้นตอนในการสร้างเอกสาร PDF โดยมีย่อหน้าอยู่
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter
PdfWriterคลาสแทน Doc Writer สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. ตัวสร้างของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงเส้นทางของไฟล์ที่จะสร้าง PDF
สร้างอินสแตนซ์คลาส PdfWriter โดยส่งค่าสตริง (แสดงถึงเส้นทางที่คุณต้องการสร้าง PDF) ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfWriter
String dest = "C:/itextExamples/addingParagraph.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
สร้างอินสแตนซ์คลาสเอกสารโดยส่งผ่านอ็อบเจ็กต์ของคลาส PdfDocument สร้างขึ้นในขั้นตอนก่อนหน้าตามที่แสดงด้านล่าง
// Creating a Document
Document document = new Document(pdfDoc);
ขั้นตอนที่ 4: การสร้างวัตถุย่อหน้า
Paragraphคลาสแสดงถึงบล็อกของข้อมูลที่เป็นข้อความและกราฟิกในตัว มันเป็นของแพ็คเกจcom.itextpdf.layout.element.
เริ่มต้นไฟล์ Paragraph คลาสโดยส่งเนื้อหาข้อความเป็นสตริงไปยังตัวสร้างดังที่แสดงด้านล่าง
String para = "Welcome to Tutorialspoint.";
// Creating an Area Break
Paragraph para = new Paragraph (para);
ขั้นตอนที่ 5: การเพิ่มย่อหน้า
เพิ่มไฟล์ Paragraph สร้างวัตถุในขั้นตอนก่อนหน้าโดยใช้ add() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Adding area break to the PDF
document.add(para);
ขั้นตอนที่ 6: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
โปรแกรม Java ต่อไปนี้สาธิตวิธีสร้างเอกสาร PDF และเพิ่มย่อหน้าโดยใช้ไลบรารี iText สร้างเอกสาร PDF ที่มีชื่อaddingParagraph.pdfเพิ่มย่อหน้าและบันทึกไว้ในเส้นทาง C:/itextExamples/.
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ AddingParagraph.java.
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;
public class AddingParagraph {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/addingParagraph.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument
PdfDocument pdf = new PdfDocument(writer);
// Creating a Document
Document document = new Document(pdf);
String para1 = "Tutorials Point originated from the idea that there exists
a class of readers who respond better to online content and prefer to learn
new skills at their own pace from the comforts of their drawing rooms.";
String para2 = "The journey commenced with a single tutorial on HTML in 2006
and elated by the response it generated, we worked our way to adding fresh
tutorials to our repository which now proudly flaunts a wealth of tutorials
and allied articles on topics ranging from programming languages to web designing
to academics and much more.";
// Creating Paragraphs
Paragraph paragraph1 = new Paragraph(para1);
Paragraph paragraph2 = new Paragraph(para2);
// Adding paragraphs to document
document.add(paragraph1);
document.add(paragraph2);
// Closing the document
document.close();
System.out.println("Paragraph added");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -
javac AddingParagraph.java
java AddingParagraph
เมื่อดำเนินการโปรแกรมด้านบนจะสร้างเอกสาร PDF โดยแสดงข้อความต่อไปนี้
Paragraph added
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง
ในบทนี้เราจะดูวิธีสร้างเอกสาร PDF และเพิ่มรายการโดยใช้ไลบรารี iText
การสร้างรายการ
คุณสามารถสร้างเอกสาร PDF เปล่าได้โดยการสร้างไฟล์ Documentชั้นเรียน. ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocumentออบเจ็กต์เป็นพารามิเตอร์ไปยังตัวสร้าง จากนั้นในการเพิ่มรายการลงในเอกสารคุณต้องสร้างอินสแตนซ์ไฟล์List คลาสและเพิ่มวัตถุนี้ลงในเอกสารโดยใช้ add() วิธี.
ต่อไปนี้เป็นขั้นตอนในการสร้างเอกสาร PDF และเพิ่มรายการเข้าไป
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter
PdfWriterคลาสแทน DocWriter สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. ตัวสร้างของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงเส้นทางของไฟล์ที่จะสร้าง PDF
สร้างอินสแตนซ์คลาส PdfWriter โดยส่งค่าสตริง (แสดงถึงเส้นทางที่คุณต้องการสร้าง PDF) ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfWriter
String dest = "C:/itextExamples/addingList.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: การสร้างวัตถุรายการ
Listคลาสแสดงถึงชุดของวัตถุที่ระบุไว้ในแนวตั้ง มันเป็นของแพ็คเกจcom.itextpdf.layout.element.
เริ่มต้นไฟล์ List คลาสดังที่แสดงด้านล่าง
// Creating a list
List list = new List();
ขั้นตอนที่ 5: การเพิ่มองค์ประกอบในรายการ
เพิ่มเนื้อหาลงในไฟล์ list วัตถุโดยใช้ add() วิธีการของ List คลาสโดยส่งผ่านค่า String ดังที่แสดงด้านล่าง
// Add elements to the list
list.add("Java");
list.add("JavaFX");
list.add("Apache Tika");
list.add("OpenCV");
ขั้นตอนที่ 6: การเพิ่มรายการลงในเอกสาร
เพิ่มไฟล์ list สร้างวัตถุในขั้นตอนก่อนหน้าโดยใช้ add() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Adding list to the document
document.add(list);
ขั้นตอนที่ 7: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document คลาสดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
โปรแกรม Java ต่อไปนี้สาธิตวิธีสร้างเอกสาร PDF และเพิ่มรายการโดยใช้ไลบรารี iText สร้างเอกสาร PDF ที่มีชื่อaddingList.pdfเพิ่มรายชื่อและบันทึกไว้ในเส้นทาง C:/itextExamples/.
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ AddingList.java.
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.List;
import com.itextpdf.layout.element.Paragraph;
public class AddingList {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/addngList.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument
PdfDocument pdf = new PdfDocument(writer);
// Creating a Document
Document document = new Document(pdf);
// Creating a Paragraph
Paragraph paragraph = new Paragraph("Tutorials Point provides the following tutorials");
// Creating a list
List list = new List();
// Add elements to the list
list.add("Java");
list.add("JavaFX");
list.add("Apache Tika");
list.add("OpenCV");
list.add("WebGL");
list.add("Coffee Script");
list.add("Java RMI");
list.add("Apache Pig");
// Adding paragraph to the document
document.add(paragraph);
// Adding list to the document
document.add(list);
// Closing the document
document.close();
System.out.println("List added");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -
javac AddingList.java
java AddingList
เมื่อดำเนินการโปรแกรมด้านบนจะสร้างเอกสาร PDF โดยแสดงข้อความต่อไปนี้
List added
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง
ในบทนี้เราจะดูวิธีสร้างเอกสาร PDF และเพิ่มตารางโดยใช้ไลบรารี iText
การเพิ่มตารางลงใน Pdf
คุณสามารถสร้างเอกสาร PDF เปล่าได้โดยการสร้างไฟล์ Documentชั้นเรียน. ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocumentวัตถุเป็นพารามิเตอร์ของตัวสร้าง จากนั้นในการเพิ่มตารางลงในเอกสารคุณต้องสร้างอินสแตนซ์ไฟล์Table คลาสและเพิ่มวัตถุนี้ลงในเอกสารโดยใช้ add() วิธี.
ต่อไปนี้เป็นขั้นตอนในการสร้างเอกสาร PDF โดยมีตารางอยู่ในนั้น
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter
PdfWriterคลาสแทน DocWriter สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. ตัวสร้างของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงเส้นทางของไฟล์ที่จะสร้าง PDF
เริ่มต้นไฟล์ PdfWriter คลาสโดยส่งค่าสตริง (แสดงเส้นทางที่คุณต้องการสร้าง PDF) ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfWriter
String dest = "C:/itextExamples/addingTable.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: การสร้างวัตถุตาราง
Tableคลาสแสดงตารางสองมิติที่เต็มไปด้วยเซลล์ที่เรียงลำดับเป็นแถวและคอลัมน์ มันเป็นของแพ็คเกจcom.itextpdf.layout.element.
เริ่มต้นไฟล์ Table คลาสดังที่แสดงด้านล่าง
// Creating a table object
float [] pointColumnWidths = {150F, 150F, 150F};
Table table = new Table(pointColumnWidths);
ขั้นตอนที่ 5: การเพิ่มเซลล์ลงในตาราง
สร้างไฟล์ cell วัตถุโดยการสร้างอินสแตนซ์ไฟล์ Cell คลาสของแพ็คเกจ com.itextpdf.layout.element. เพิ่มเนื้อหาของเซลล์โดยใช้ไฟล์add() วิธีการของคลาสนี้
สุดท้ายหากต้องการเพิ่มเซลล์นี้ลงในตารางให้เรียกไฟล์ addCell() วิธีการของ Table เรียนและผ่าน cell วัตถุเป็นพารามิเตอร์ของวิธีนี้ดังที่แสดงด้านล่าง
// Adding cell 1 to the table
Cell cell1 = new Cell(); // Creating a cell
cell1.add("Name"); // Adding content to the cell
table.addCell(cell1); // Adding cell to the table
// Adding cell 2 to the table Cell
cell2 = new Cell(); // Creating a cell
cell2.add("Raju"); // Adding content to the cell
table.addCell(cell2); // Adding cell to the table
ขั้นตอนที่ 6: การเพิ่มตารางลงในเอกสาร
เพิ่มไฟล์ table สร้างวัตถุในขั้นตอนก่อนหน้าโดยใช้ add() วิธีการของ Document คลาสดังที่แสดงด้านล่าง
// Adding list to the document
document.add(table);
ขั้นตอนที่ 7: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
โปรแกรม Java ต่อไปนี้สาธิตวิธีการสร้างเอกสาร PDF และเพิ่มตารางโดยใช้ไลบรารี iText สร้างเอกสาร PDF ที่มีชื่อaddingTable.pdfเพิ่มตารางเข้าไปและบันทึกไว้ในเส้นทาง C:/itextExamples/
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ AddingTable.java.
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Cell;
import com.itextpdf.layout.element.Table;
public class AddingTable {
public static void main(String args[]) throws Exception {
// Creating a PdfDocument object
String dest = "C:/itextExamples/addingTable.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument object
PdfDocument pdf = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdf);
// Creating a table
float [] pointColumnWidths = {150F, 150F, 150F};
Table table = new Table(pointColumnWidths);
// Adding cells to the table
table.addCell(new Cell().add("Name"));
table.addCell(new Cell().add("Raju"));
table.addCell(new Cell().add("Id"));
table.addCell(new Cell().add("1001"));
table.addCell(new Cell().add("Designation"));
table.addCell(new Cell().add("Programmer"));
// Adding Table to document
doc.add(table);
// Closing the document
doc.close();
System.out.println("Table created successfully..");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -
javac AddingTable.java
java AddingTable
เมื่อดำเนินการโปรแกรมด้านบนจะสร้างเอกสาร PDF โดยแสดงข้อความต่อไปนี้
Table created successfully..
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง
ในบทนี้เราจะดูวิธีสร้างเอกสาร PDF และเพิ่มตารางและจัดรูปแบบเนื้อหาของเซลล์ในตารางโดยใช้ไลบรารี iText
การจัดรูปแบบเซลล์ในตาราง
คุณสามารถสร้าง PDF เปล่า Documentโดยการสร้างอินสแตนซ์คลาสเอกสาร ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocumentออบเจ็กต์เป็นพารามิเตอร์ไปยังตัวสร้าง จากนั้นในการเพิ่มตารางลงในเอกสารคุณต้องสร้างอินสแตนซ์ไฟล์Table คลาสและเพิ่มวัตถุนี้ลงในเอกสารโดยใช้ add()วิธี. คุณสามารถจัดรูปแบบเนื้อหาของเซลล์ในตารางโดยใช้วิธีการของไฟล์Cell ชั้นเรียน.
ต่อไปนี้เป็นขั้นตอนในการจัดรูปแบบเนื้อหาของเซลล์ในตาราง
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter
PdfWriterคลาสแทน DocWriter สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. ตัวสร้างของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงเส้นทางของไฟล์ที่จะสร้าง PDF
สร้างอินสแตนซ์คลาส PdfWriter โดยส่งค่าสตริง (แสดงถึงเส้นทางที่คุณต้องการสร้าง PDF) ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfWriter
String dest = "C:/itextExamples/addingBackground.pdf";
PdfWriter writer = new PdfWriter(dest);
เมื่อออบเจ็กต์ประเภทนี้ถูกส่งผ่านไปยัง PdfDocument (คลาส) ทุกองค์ประกอบที่เพิ่มในเอกสารนี้จะถูกเขียนลงในไฟล์ที่ระบุ
ขั้นตอนที่ 2: การสร้างวัตถุ PdfDocument
PdfDocumentคลาสคือคลาสที่แสดงถึง PDFDocument ใน 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: การสร้างวัตถุตาราง
Tableคลาสแสดงตารางสองมิติที่เต็มไปด้วยเซลล์เรียงลำดับเป็นแถวและคอลัมน์ มันเป็นของแพ็คเกจcom.itextpdf.layout.element.
สร้างอินสแตนซ์คลาสตารางดังที่แสดงด้านล่าง
// Creating a table
float [] pointColumnWidths = {200F, 200F};
Table table = new Table(pointColumnWidths);
ขั้นตอนที่ 5: การสร้างเซลล์
สร้างไฟล์ cell วัตถุโดยการสร้างอินสแตนซ์ไฟล์ Cell คลาสของแพ็คเกจ com.itextpdf.layout.element. เพิ่มเนื้อหาของเซลล์โดยใช้ไฟล์add() วิธีการของ Cell ชั้นเรียนดังที่แสดงด้านล่าง
// Adding cell 1 to the table
Cell cell1 = new Cell(); // Creating a cell
cell1.add("Name"); // Adding content to the cell
// Adding cell 2 to the table
Cell cell2 = new Cell(); // Creating a cell
cell2.add("Raju"); // Adding content to the cell
ขั้นตอนที่ 6: การเพิ่มพื้นหลังให้กับเซลล์
เมื่อคุณสร้างเซลล์และเพิ่มเนื้อหาลงในเซลล์แล้วคุณสามารถจัดรูปแบบเซลล์ได้ ตัวอย่างเช่นคุณสามารถตั้งค่าพื้นหลังจัดแนวข้อความภายในเซลล์เปลี่ยนสีข้อความ ฯลฯ โดยใช้วิธีการต่างๆของคลาสเซลล์เช่นsetBackgroundColor(), setBorder(), setTextAlignment().
คุณสามารถตั้งค่าสีพื้นหลังเส้นขอบและการจัดแนวข้อความให้กับเซลล์ที่สร้างขึ้นในขั้นตอนก่อนหน้าดังที่แสดงด้านล่าง
c1.setBackgroundColor(Color.DARK_GRAY); // Setting background color to cell1
c1.setBorder(Border.NO_BORDER); // Setting border to cell1
c1.setTextAlignment(TextAlignment.CENTER); // Setting text alignment to cell1
ขั้นตอนที่ 7: การเพิ่มเซลล์ลงในตาราง
สุดท้ายหากต้องการเพิ่มเซลล์นี้ลงในตารางให้เรียกไฟล์ addCell() วิธีการของ Table เรียนและผ่าน cell วัตถุเป็นพารามิเตอร์ของวิธีนี้ดังที่แสดงด้านล่าง
table.addCell(c1);
ขั้นตอนที่ 8: การเพิ่มตารางลงในเอกสาร
เพิ่มไฟล์ table สร้างวัตถุในขั้นตอนก่อนหน้าโดยใช้ add() วิธีการของ Document คลาสดังที่แสดงด้านล่าง
// Adding list to the document
document.add(table);
ขั้นตอนที่ 9: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
โปรแกรม Java ต่อไปนี้แสดงให้เห็นถึงวิธีการจัดรูปแบบเนื้อหาของเซลล์ในตารางโดยใช้ไลบรารี iText สร้างเอกสาร PDF ที่มีชื่อaddingBackground.pdfเพิ่มตารางลงในตารางจัดรูปแบบเนื้อหาของเซลล์และบันทึกไว้ในเส้นทาง C:/itextExamples/
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ BackgroundToTable.java.
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.border.Border;
import com.itextpdf.layout.element.Cell;
import com.itextpdf.layout.element.Table;
import com.itextpdf.layout.property.TextAlignment;
public class BackgroundToTable {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter object
String dest = "C:/itextExamples/addingBackground.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument object
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating a table
float [] pointColumnWidths = {200F, 200F};
Table table = new Table(pointColumnWidths);
// Populating row 1 and adding it to the table
Cell c1 = new Cell(); // Creating cell 1
c1.add("Name"); // Adding name to cell 1
c1.setBackgroundColor(Color.DARK_GRAY); // Setting background color
c1.setBorder(Border.NO_BORDER); // Setting border
c1.setTextAlignment(TextAlignment.CENTER); // Setting text alignment
table.addCell(c1); // Adding cell 1 to the table
Cell c2 = new
Cell();
c2.add("Raju");
c2.setBackgroundColor(Color.GRAY);
c2.setBorder(Border.NO_BORDER);
c2.setTextAlignment(TextAlignment.CENTER);
table.addCell(c2);
// Populating row 2 and adding it to the table
Cell c3 = new Cell();
c3.add("Id");
c3.setBackgroundColor(Color.WHITE);
c3.setBorder(Border.NO_BORDER);
c3.setTextAlignment(TextAlignment.CENTER);
table.addCell(c3);
Cell c4 = new Cell();
c4.add("001");
c4.setBackgroundColor(Color.WHITE);
c4.setBorder(Border.NO_BORDER);
c4.setTextAlignment(TextAlignment.CENTER);
table.addCell(c4);
// Populating row 3 and adding it to the table
Cell c5 = new Cell();
c5.add("Designation");
c5.setBackgroundColor(Color.DARK_GRAY);
c5.setBorder(Border.NO_BORDER);
c5.setTextAlignment(TextAlignment.CENTER);
table.addCell(c5);
Cell c6 = new Cell();
c6.add("Programmer");
c6.setBackgroundColor(Color.GRAY);
c6.setBorder(Border.NO_BORDER);
c6.setTextAlignment(TextAlignment.CENTER);
table.addCell(c6);
// Adding Table to document
doc.add(table);
// Closing the document
doc.close();
System.out.println("Background added successfully..");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -
javac BackgroundToTable.java
java BackgroundToTable
เมื่อดำเนินการโปรแกรมด้านบนจะสร้างเอกสาร PDF โดยแสดงข้อความต่อไปนี้
Background added successfully..
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง
ในบทนี้เราจะดูวิธีจัดรูปแบบเส้นขอบของเซลล์ในตารางโดยใช้ไลบรารี iText
การจัดรูปแบบเส้นขอบของเซลล์
คุณสามารถสร้างเอกสาร PDF เปล่าได้โดยการสร้างไฟล์ Documentชั้นเรียน. ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocument วัตถุเป็นพารามิเตอร์ของตัวสร้าง
จากนั้นในการเพิ่มตารางลงในเอกสารคุณต้องสร้างอินสแตนซ์ไฟล์ Table คลาสและเพิ่มวัตถุนี้ลงในเอกสารโดยใช้ add() วิธี.
คุณสามารถเพิ่มเส้นขอบประเภทต่างๆเช่น DashedBorder, SolidBorder, DottedBorder, DoubleBorder, RoundDotsBorderฯลฯ ด้วยสีต่างๆโดยใช้ setBorder() วิธีการของ Cell ชั้นเรียน.
ต่อไปนี้เป็นขั้นตอนในการจัดรูปแบบเส้นขอบของเซลล์ในตาราง
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter
PdfWriterคลาสแทน DocWriter สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. ตัวสร้างของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงเส้นทางของไฟล์ที่จะสร้าง PDF
สร้างอินสแตนซ์คลาส PdfWriter โดยส่งค่าสตริง (แสดงถึงเส้นทางที่คุณต้องการสร้าง PDF) ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfWriter
String dest = "C:/itextExamples/coloredBorders.pdf";
PdfWriter writer = new PdfWriter(dest);
เมื่อออบเจ็กต์ประเภทนี้ถูกส่งผ่านไปยัง PdfDocument (คลาส) ทุกองค์ประกอบที่เพิ่มในเอกสารนี้จะถูกเขียนลงในไฟล์ที่ระบุ
ขั้นตอนที่ 2: การสร้างวัตถุ PdfDocument
PdfDocumentคลาสคือคลาสที่แสดงถึง PDFDocument ใน 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: การสร้างวัตถุตาราง
Tableคลาสแสดงตารางสองมิติที่เต็มไปด้วยเซลล์ที่เรียงลำดับเป็นแถวและคอลัมน์ มันเป็นของแพ็คเกจcom.itextpdf.layout.element.
เริ่มต้นไฟล์ Table คลาสดังที่แสดงด้านล่าง
// Creating a table
float [] pointColumnWidths = {200F, 200F};
Table table = new Table(pointColumnWidths);
ขั้นตอนที่ 5: การสร้างเซลล์
สร้างวัตถุเซลล์โดยสร้างอินสแตนซ์ไฟล์ Cell คลาสของแพ็คเกจ com.itextpdf.layout.element เพิ่มเนื้อหาของเซลล์โดยใช้ไฟล์ add() วิธีการของ Cell ชั้นเรียนดังที่แสดงด้านล่าง
// Adding cell 1 to the table
Cell cell1 = new Cell(); // Creating a cell
cell1.add("Name"); // Adding content to the cell
ขั้นตอนที่ 6: การจัดรูปแบบเส้นขอบของเซลล์
ไลบรารี iText มีคลาสต่างๆที่แสดงถึงเส้นขอบเช่น DashedBorder, SolidBorder, DottedBorder, DoubleBorder, RoundDotsBorderฯลฯ
ตัวสร้างของคลาสเหล่านี้ยอมรับพารามิเตอร์สองตัว: a color วัตถุที่แสดงสีของเส้นขอบและ integer แทนความกว้างของเส้นขอบ
เลือกหนึ่งในประเภทเส้นขอบนี้และสร้างอินสแตนซ์ของเส้นขอบตามลำดับโดยการส่งไฟล์ color วัตถุและไฟล์ integer แทนความกว้างดังแสดงด้านล่าง
Border b1 = new DashedBorder(Color.RED, 3);
ตอนนี้ตั้งค่าเส้นขอบของเซลล์โดยใช้ setBorder() วิธีการของ cellชั้นเรียน. วิธีนี้ยอมรับออบเจ็กต์ประเภทBorder เป็นพารามิเตอร์
กำหนดเส้นขอบของเซลล์โดยส่งผ่านที่สร้างไว้ข้างต้น Border วัตถุเป็นพารามิเตอร์ของ setBorder() วิธีการดังแสดงด้านล่าง
c1.setBorder(b1)
สุดท้ายหากต้องการเพิ่มเซลล์นี้ลงในตารางให้เรียกไฟล์ addCell() วิธีการของ Table เรียนและผ่าน cell วัตถุเป็นพารามิเตอร์ของวิธีนี้ดังที่แสดงด้านล่าง
table.addCell(c1);
ขั้นตอนที่ 7: การเพิ่มตารางลงในเอกสาร
เพิ่มไฟล์ table สร้างวัตถุในขั้นตอนก่อนหน้าโดยใช้ add() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Adding list to the document
document.add(table);
ขั้นตอนที่ 8: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
โปรแกรม Java ต่อไปนี้สาธิตวิธีการจัดรูปแบบเส้นขอบของเซลล์ในตารางโดยใช้ไลบรารี iText สร้างเอกสาร PDF ที่มีชื่อcoloredBorders.pdfเพิ่มตารางลงในตารางจัดรูปแบบเนื้อหาของเซลล์และบันทึกไว้ในเส้นทาง C:/itextExamples/
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ FormatedBorders.java.
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.border.Border;
import com.itextpdf.layout.border.DashedBorder;
import com.itextpdf.layout.border.DottedBorder;
import com.itextpdf.layout.border.DoubleBorder;
import com.itextpdf.layout.border.RoundDotsBorder;
import com.itextpdf.layout.border.SolidBorder;
import com.itextpdf.layout.element.Cell;
import com.itextpdf.layout.element.Table;
import com.itextpdf.layout.property.TextAlignment;
public class FormatedBorders {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter object
String dest = "C:/itextExamples/coloredBorders.pdf";
PdfWriter writer = new
PdfWriter(dest);
// Creating a PdfDocument object
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating a table
float [] pointColumnWidths = {200F, 200F};
Table table = new Table(pointColumnWidths);
// Adding row 1 to the table
Cell c1 = new Cell();
// Adding the contents of the cell
c1.add("Name");
// Setting the back ground color of the cell
c1.setBackgroundColor(Color.DARK_GRAY);
// Instantiating the Border class
Border b1 = new DashedBorder(Color.RED, 3);
// Setting the border of the cell
c1.setBorder(b1);
// Setting the text alignment
c1.setTextAlignment(TextAlignment.CENTER);
// Adding the cell to the table
table.addCell(c1);
Cell c2 = new Cell();
c2.add("Raju");
c1.setBorder(new SolidBorder(Color.RED, 3));
c2.setTextAlignment(TextAlignment.CENTER);
table.addCell(c2);
// Adding row 2 to the table
Cell c3 = new Cell();
c3.add("Id");
c3.setBorder(new DottedBorder(Color.DARK_GRAY, 3));
c3.setTextAlignment(TextAlignment.CENTER);
table.addCell(c3);
Cell c4 = new Cell();
c4.add("001");
c4.setBorder(new DoubleBorder(Color.DARK_GRAY, 3));
c4.setTextAlignment(TextAlignment.CENTER);
table.addCell(c4);
// Adding row 3 to the table
Cell c5 = new Cell();
c5.add("Designation");
c5.setBorder(new RoundDotsBorder(Color.RED, 3));
c5.setTextAlignment(TextAlignment.CENTER);
table.addCell(c5);
Cell c6 = new Cell();
c6.add("Programmer");
c6.setBorder(new RoundDotsBorder(Color.RED, 3));
c6.setTextAlignment(TextAlignment.CENTER);
table.addCell(c6);
// Adding Table to document
doc.add(table);
// Closing the document
doc.close();
System.out.println("Borders added successfully..");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -
javac FormatedBorders.java
java FormatedBorders
เมื่อดำเนินการโปรแกรมด้านบนจะสร้างเอกสาร PDF โดยแสดงข้อความต่อไปนี้
Borders added successfully
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง
ในบทนี้เราจะดูวิธีการเพิ่มรูปภาพลงในตารางในเอกสาร PDF โดยใช้ไลบรารี iText
การเพิ่มรูปภาพลงในตาราง
คุณสามารถสร้างเอกสาร PDF เปล่าได้โดยการสร้างไฟล์ Documentชั้นเรียน. ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocumentออบเจ็กต์เป็นพารามิเตอร์ไปยังตัวสร้าง จากนั้นในการเพิ่มตารางลงในเอกสารคุณต้องสร้างอินสแตนซ์ไฟล์Table คลาสและเพิ่มวัตถุนี้ลงในเอกสารโดยใช้ add() วิธี.
ในการเพิ่มรูปภาพลงในตารางนี้คุณต้องสร้างอินสแตนซ์ไฟล์ Cell คลาสสร้างและออบเจ็กต์ของรูปภาพที่ต้องการเพิ่มเพิ่มรูปภาพลงในไฟล์ cell วัตถุโดยใช้ add() วิธีการของ Cell ชั้นเรียน.
ต่อไปนี้เป็นขั้นตอนในการแทรกรูปภาพลงในเซลล์ของตาราง
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter
PdfWriter คลาสแสดงถึง Doc Writer สำหรับ 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: การสร้างวัตถุตาราง
Tableคลาสแสดงตารางสองมิติที่เต็มไปด้วยเซลล์เรียงลำดับเป็นแถวและคอลัมน์ มันเป็นของแพ็คเกจcom.itextpdf.layout.element.
เริ่มต้นไฟล์ Table คลาสดังที่แสดงด้านล่าง
// Creating a table
float [] pointColumnWidths = {200F, 200F};
Table table = new Table(pointColumnWidths);
ขั้นตอนที่ 5: สร้างเซลล์
สร้างไฟล์ cell วัตถุโดยการสร้างอินสแตนซ์ไฟล์ Cell คลาสของแพ็คเกจ com.itextpdf.layoutดังที่แสดงด้านล่าง
// Adding cell to the table
Cell cell = new Cell(); // Creating a cell
ขั้นตอนที่ 6: การสร้างภาพ
เพื่อสร้างไฟล์ 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);
เพิ่มไฟล์ image วัตถุไปยังเซลล์โดยใช้ไฟล์ add() วิธีการของคลาสเซลล์ดังที่แสดงด้านล่าง
// Adding image to the cell
cell.add(img.setAutoScale(true));
ขั้นตอนที่ 7: การเพิ่มเซลล์ลงในตาราง
สุดท้ายหากต้องการเพิ่มเซลล์นี้ลงในตารางให้เรียกไฟล์ addCell() วิธีการของ Table เรียนและผ่าน cell วัตถุเป็นพารามิเตอร์ของวิธีนี้ดังที่แสดงด้านล่าง
table.addCell(cell);
ขั้นตอนที่ 8: การเพิ่มตารางลงในเอกสาร
เพิ่มไฟล์ table สร้างวัตถุในขั้นตอนก่อนหน้าโดยใช้ add() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Adding list to the document
document.add(table);
ขั้นตอนที่ 9: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
โปรแกรม Java ต่อไปนี้สาธิตวิธีการเพิ่มรูปภาพลงในเซลล์ของตารางในเอกสาร PDF โดยใช้ไลบรารี iText สร้างเอกสาร PDF ที่มีชื่อaddingImage.pdfเพิ่มตารางเข้าไปแทรกรูปภาพ (javafxLogo.jpg) ไปยังเซลล์ใดเซลล์หนึ่งและบันทึกไว้ในเส้นทาง C:/itextExamples/.
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ AddingImageToTable.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.Cell;
import com.itextpdf.layout.element.Image;
import com.itextpdf.layout.element.Table;
public class a3AddingImageToTable {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter object
String dest = "C:/itextExamples/addingImage.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument object
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating a table
float [] pointColumnWidths = {150f, 150f};
Table table = new Table(pointColumnWidths);
// Populating row 1 and adding it to the table
Cell cell1 = new Cell();
cell1.add("Tutorial ID");
table.addCell(cell1);
Cell cell2 = new Cell();
cell2.add("1");
table.addCell(cell2);
// Populating row 2 and adding it to the table
Cell cell3 = new Cell();
cell3.add("Tutorial Title");
table.addCell(cell3);
Cell cell4 = new Cell();
cell4.add("JavaFX");
table.addCell(cell4);
// Populating row 3 and adding it to the table
Cell cell5 = new Cell();
cell5.add("Tutorial Author");
table.addCell(cell5);
Cell cell6 = new Cell();
cell6.add("Krishna Kasyap");
table.addCell(cell6);
// Populating row 4 and adding it to the table
Cell cell7 = new Cell();
cell7.add("Submission date");
table.addCell(cell7);
Cell cell8 = new Cell();
cell8.add("2016-07-06");
table.addCell(cell8);
// Populating row 5 and adding it to the table
Cell cell9 = new Cell();
cell9.add("Tutorial Icon");
table.addCell(cell9);
// Creating the cell10
Cell cell10 = new Cell();
// Creating an ImageData object
String imageFile = "C:/itextExamples/javafxLogo.jpg";
ImageData data = ImageDataFactory.create(imageFile);
// Creating the image
Image img = new Image(data);
// Adding image to the cell10
cell10.add(img.setAutoScale(true));
// Adding cell110 to the table
table.addCell(cell10);
// Adding Table to document
doc.add(table);
// Closing the document
doc.close();
System.out.println("Image added to table successfully..");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -
javac AddingImageToTable.java
java AddingImageToTable
เมื่อดำเนินการโปรแกรมด้านบนจะสร้างเอกสาร PDF โดยแสดงข้อความต่อไปนี้
Image added to table successfully..
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง
ในบทนี้เราจะดูวิธีการเพิ่มตารางซ้อนลงในตารางในเอกสาร PDF โดยใช้ไลบรารี iText
การเพิ่มตารางที่ซ้อนกันใน Pdf
คุณสามารถสร้างเอกสาร PDF เปล่าได้โดยการสร้างไฟล์ Documentชั้นเรียน. ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocumentออบเจ็กต์เป็นพารามิเตอร์ไปยังตัวสร้าง จากนั้นในการเพิ่มตารางลงในเอกสารคุณต้องสร้างอินสแตนซ์ไฟล์Table คลาสและเพิ่มวัตถุนี้ลงในเอกสารโดยใช้ add() วิธี.
ในการเพิ่มตารางลงในตารางนี้คุณต้องสร้างตารางอื่น (ตารางที่ซ้อนกัน) และส่งต่อไปยังวัตถุเซลล์โดยใช้ add() วิธีการของ Cell ชั้นเรียน.
ต่อไปนี้เป็นขั้นตอนในการแทรกตารางลงในเซลล์ของตาราง
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter
PdfWriterคลาสแทน DocWriter สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. ตัวสร้างของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงเส้นทางของไฟล์ที่จะสร้าง PDF
สร้างอินสแตนซ์คลาส PdfWriter โดยส่งค่าสตริง (แสดงถึงเส้นทางที่คุณต้องการสร้าง PDF) ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfWriter
String dest = "C:/itextExamples/addingNestedTable.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: การสร้างวัตถุตาราง
Tableคลาสแสดงตารางสองมิติที่เต็มไปด้วยเซลล์เรียงลำดับเป็นแถวและคอลัมน์ มันเป็นของแพ็คเกจcom.itextpdf.layout.element.
เริ่มต้นไฟล์ Table คลาสดังที่แสดงด้านล่าง
// Creating a table
float [] pointColumnWidths = {200F, 200F};
Table table = new Table(pointColumnWidths);
ขั้นตอนที่ 5: สร้างเซลล์
สร้างไฟล์ cell วัตถุโดยการสร้างอินสแตนซ์ไฟล์ Cell คลาสของแพ็คเกจ com.itextpdf.layoutดังที่แสดงด้านล่าง
// Adding cell to the table
Cell contact = new Cell(); // Creating a cell
ขั้นตอนที่ 6: การสร้างตารางที่ซ้อนกัน
หลังจากสร้างไฟล์ cellสร้างตารางที่ซ้อนกันและเติมข้อมูลในเซลล์ดังที่แสดงด้านล่าง
// Creating nested table for contact
float [] pointColumnWidths2 = {150f, 150f};
Table nestedTable = new Table(pointColumnWidths2);
// Populating row 1 and adding it to the nested table
Cell nested1 = new Cell();
nested1.add("Phone");
nestedTable.addCell(nested1);
Cell nested2 = new Cell();
nested2.add("9848022338");
nestedTable.addCell(nested2);
// Populating row 2 and adding it to the nested table
Cell nested3 = new Cell();
nested3.add("email");
nestedTable.addCell(nested3);
Cell nested4 = new Cell();
nested4.add("[email protected]");
nestedTable.addCell(nested4);
// Populating row 3 and adding it to the nested table
Cell nested5 = new Cell();
nested5.add("Address");
nestedTable.addCell(nested5);
Cell nested6 = new Cell();
nested6.add("Hyderabad");
nestedTable.addCell(nested6);
ขั้นตอนที่ 7: การเพิ่มตารางที่ซ้อนกันลงในเซลล์
ตอนนี้เพิ่มตารางที่ซ้อนกันที่สร้างไว้ด้านบนลงในเซลล์ของตารางพาเรนต์ (คอนเทนเนอร์) โดยใช้ไฟล์ add() วิธีการของ Cellชั้นเรียน. และเพิ่มเซลล์นี้ในตารางหลักโดยใช้addCell() วิธีการของ Table ชั้นเรียนดังที่แสดงด้านล่าง
contact.add(nestedTable);
table.addCell(contact);
ขั้นตอนที่ 8: การเพิ่มตารางลงในเอกสาร
เพิ่มไฟล์ table สร้างวัตถุในขั้นตอนก่อนหน้าโดยใช้ add() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Adding list to the document
document.add(table);
ขั้นตอนที่ 9: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
โปรแกรม Java ต่อไปนี้สาธิตวิธีการเพิ่มตารางในเซลล์ของตาราง (ตารางซ้อนกัน) ในเอกสาร PDF โดยใช้ไลบรารี iText สร้างเอกสาร PDF ที่มีชื่อaddingNestedTable.pdfเพิ่มตารางเข้าไปแทรกตารางอื่นในเซลล์ใดเซลล์หนึ่งและบันทึกไว้ในเส้นทาง C:/itextExamples/.
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ AddNestedTable.java.
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Cell;
import com.itextpdf.layout.element.Table;
public class a4AddNestedTablesPdf {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter object
String dest = "C:/itextExamples/addingNestedTable.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument object
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating a table
float [] pointColumnWidths1 = {150f, 150f};
Table table = new Table(pointColumnWidths1);
// Populating row 1 and adding it to the table
Cell cell1 = new Cell();
cell1.add("Name");
table.addCell(cell1);
Cell cell2 = new Cell();
cell2.add("Raju");
table.addCell(cell2);
// Populating row 2 and adding it to the table
Cell cell3 = new Cell();
cell3.add("Id");
table.addCell(cell3);
Cell cell4 = new Cell();
cell4.add("1001");
table.addCell(cell4);
// Populating row 3 and adding it to the table
Cell cell5 = new Cell();
cell5.add("Designation");
table.addCell(cell5);
Cell cell6 = new Cell();
cell6.add("Programmer");
table.addCell(cell6);
// Creating nested table for contact
float [] pointColumnWidths2 = {150f, 150f};
Table nestedTable = new Table(pointColumnWidths2);
// Populating row 1 and adding it to the nested table
Cell nested1 = new Cell();
nested1.add("Phone");
nestedTable.addCell(nested1);
Cell nested2 = new Cell();
nested2.add("9848022338");
nestedTable.addCell(nested2);
// Populating row 2 and adding it to the nested table
Cell nested3 = new Cell();
nested3.add("email");
nestedTable.addCell(nested3);
Cell nested4 = new Cell();
nested4.add("[email protected]");
nestedTable.addCell(nested4);
// Populating row 3 and adding it to the nested table
Cell nested5 = new Cell();
nested5.add("Address");
nestedTable.addCell(nested5);
Cell nested6 = new Cell();
nested6.add("Hyderabad");
nestedTable.addCell(nested6);
// Adding table to the cell
Cell cell7 = new Cell();
cell7.add("Contact");
table.addCell(cell7);
Cell cell8 = new Cell();
cell8.add(nestedTable);
table.addCell(cell8);
// Adding table to the document
doc.add(table);
// Closing the document
doc.close();
System.out.println("Nested Table Added successfully..");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -
javac AddNestedTable.java
java AddNestedTable
เมื่อดำเนินการโปรแกรมข้างต้นจะสร้างเอกสาร PDF ที่แสดงข้อความต่อไปนี้
Nested Table Added successfully..
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง
ในบทนี้เราจะดูวิธีการเพิ่มรายการลงในตารางในเอกสาร PDF โดยใช้ไลบรารี iText
การเพิ่มรายการลงในตารางใน PDF
คุณสามารถสร้างเอกสาร PDF เปล่าได้โดยการสร้างไฟล์ Documentชั้นเรียน. ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocumentวัตถุเป็นพารามิเตอร์ของตัวสร้าง จากนั้นในการเพิ่มตารางลงในเอกสารคุณต้องสร้างอินสแตนซ์ไฟล์Table คลาสและเพิ่มวัตถุนี้ลงในเอกสารโดยใช้ add() วิธี.
เพื่อเพิ่มไฟล์ list ไปที่โต๊ะคุณต้องสร้างอินสแตนซ์ไฟล์ List คลาสของ com.itextpdf.layout.element บรรจุภัณฑ์และใส่ลงในไฟล์ cell วัตถุโดยใช้ add() วิธีการของ Cell ชั้นเรียน.
ต่อไปนี้เป็นขั้นตอนในการเพิ่มรายการลงในเซลล์ของตาราง
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter
PdfWriterคลาสแทน Doc Writer สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. ตัวสร้างของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงเส้นทางของไฟล์ที่จะสร้าง PDF
สร้างอินสแตนซ์คลาส PdfWriter โดยส่งค่าสตริง (แสดงเส้นทางที่คุณต้องการสร้าง PDF) ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfWriter
String dest = "C:/itextExamples/addingObjects.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: การสร้างวัตถุตาราง
Tableคลาสแสดงตารางสองมิติที่เต็มไปด้วยเซลล์เรียงลำดับเป็นแถวและคอลัมน์ มันเป็นของแพ็คเกจcom.itextpdf.layout.element.
เริ่มต้นไฟล์ Table คลาสดังที่แสดงด้านล่าง
// Creating a table
float [] pointColumnWidths = {200F, 200F};
Table table = new Table(pointColumnWidths);
ขั้นตอนที่ 5: สร้างเซลล์
สร้างไฟล์ cell วัตถุโดยการสร้างอินสแตนซ์ไฟล์ Cell คลาสของแพ็คเกจ com.itextpdf.layoutดังที่แสดงด้านล่าง
// Adding cell to the table
Cell listCell = new Cell(); // Creating a cell
ขั้นตอนที่ 6: การสร้างวัตถุรายการ
หลังจากสร้างเซลล์แล้วให้สร้างไฟล์ list วัตถุโดยการสร้างอินสแตนซ์ไฟล์ List คลาสของแพ็คเกจ com.itextpdf.layout.element. สร้างรายการโดยการสร้างอินสแตนซ์ListItem คลาสและเพิ่มรายการที่สร้างขึ้นโดยใช้ add() วิธีการของ List ชั้นเรียนดังที่แสดงด้านล่าง
List list = new List();
ListItem item1 = new ListItem("JavaFX");
ListItem item2 = new ListItem("Java");
ListItem item3 = new ListItem("Java Servlets");
list.add(item1);
list.add(item2);
list.add(item3);
ขั้นตอนที่ 7: การเพิ่มรายการในเซลล์ของตาราง
ตอนนี้เพิ่มรายการที่สร้างไว้ด้านบนลงในเซลล์ของตารางโดยใช้ไฟล์ add()วิธีการของคลาสเซลล์ และเพิ่มเซลล์นี้ลงในตารางโดยใช้addCell() วิธีการของ Table ชั้นเรียนดังที่แสดงด้านล่าง
listCell.add(list);
table.addCell(listCell);
ขั้นตอนที่ 8: การเพิ่มตารางลงในเอกสาร
เพิ่มไฟล์ table สร้างวัตถุในขั้นตอนก่อนหน้าโดยใช้ add() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Adding list to the document
document.add(table);
ขั้นตอนที่ 9: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
โปรแกรม Java ต่อไปนี้สาธิตวิธีการเพิ่มรายการลงในเซลล์ของตารางในเอกสาร PDF โดยใช้ไลบรารี iText สร้างเอกสาร PDF ที่มีชื่อaddingObjects.pdfเพิ่มตารางเข้าไปแทรกรายการลงในเซลล์ใดเซลล์หนึ่งและบันทึกไว้ในเส้นทาง C:/itextExamples/
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ AddingListsToTable.java.
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Cell;
import com.itextpdf.layout.element.List;
import com.itextpdf.layout.element.ListItem;
import com.itextpdf.layout.element.Table;
import com.itextpdf.layout.property.TextAlignment;
public class AddingListsToTable {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter object
String file = "C:/itextExamples/addingObjects.pdf";
PdfDocument pdfDoc = new PdfDocument(new PdfWriter(file));
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating a table
float [] pointColumnWidths = {300F, 300F};
Table table = new Table(pointColumnWidths);
// Adding row 1 to the table
Cell c1 = new Cell();
c1.add("Java Related Tutorials");
c1.setTextAlignment(TextAlignment.LEFT);
table.addCell(c1);
List list1 = new List();
ListItem item1 = new ListItem("JavaFX");
ListItem item2 = new ListItem("Java");
ListItem item3 = new ListItem("Java Servlets");
list1.add(item1);
list1.add(item2);
list1.add(item3);
Cell c2 = new Cell();
c2.add(list1);
c2.setTextAlignment(TextAlignment.LEFT);
table.addCell(c2);
// Adding row 2 to the table
Cell c3 = new Cell();
c3.add("No SQL Databases");
c3.setTextAlignment(TextAlignment.LEFT);
table.addCell(c3);
List list2 = new List();
list2.add(new ListItem("HBase"));
list2.add(new ListItem("Neo4j"));
list2.add(new ListItem("MongoDB"));
Cell c4 = new Cell();
c4.add(list2);
c4.setTextAlignment(TextAlignment.LEFT);
table.addCell(c4);
// Adding Table to document
doc.add(table);
// Closing the document
doc.close();
System.out.println("Lists added to table successfully..");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -
javac AddingListsToTable.java
java AddingListsToTable
เมื่อดำเนินการโปรแกรมด้านบนจะสร้างเอกสาร PDF โดยแสดงข้อความต่อไปนี้
Lists added to table successfully..
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร 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 ที่สร้างขึ้นดังที่แสดงด้านล่าง
ในบทนี้เราจะดูวิธีกำหนดตำแหน่งของรูปภาพในเอกสาร PDF โดยใช้ไลบรารี iText
การตั้งค่าตำแหน่งของภาพ
คุณสามารถสร้างเอกสาร PDF เปล่าได้โดยการสร้างไฟล์ Documentชั้นเรียน. ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocument วัตถุเป็นพารามิเตอร์ของตัวสร้าง
ในการเพิ่มภาพลงใน pdf ให้สร้างและวัตถุของภาพที่จำเป็นต้องเพิ่มและเพิ่มโดยใช้ไฟล์ add() วิธีการของ Documentชั้นเรียน. คุณสามารถแทรกรูปภาพในตำแหน่งที่ต้องการบนเอกสารโดยใช้วิธีการsetFixedPosition() ของ Image ชั้นเรียน.
ต่อไปนี้เป็นขั้นตอนในการกำหนดตำแหน่งของรูปภาพในเอกสาร PDF
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter
PdfWriterคลาสแทน DocWriter สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. ตัวสร้างของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงเส้นทางของไฟล์ที่จะสร้าง PDF
สร้างอินสแตนซ์คลาส PdfWriter โดยส่งค่าสตริง (แสดงถึงเส้นทางที่คุณต้องการสร้าง PDF) ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfWriter
String dest = "C:/itextExamples/positionOfImage.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: การตั้งค่าตำแหน่งของภาพ
คุณสามารถกำหนดตำแหน่งของรูปภาพในเอกสาร PDF โดยใช้ไฟล์ setFixedPosition()วิธีการของรูปภาพ กำหนดตำแหน่งของรูปภาพเป็นพิกัด (100, 250) บนเอกสารโดยใช้วิธีนี้ดังที่แสดงด้านล่าง
// Setting the position of the image to the center of the page
image.setFixedPosition(100, 250);
ขั้นตอนที่ 6: การเพิ่มรูปภาพลงในเอกสาร
ตอนนี้เพิ่มออบเจ็กต์รูปภาพที่สร้างขึ้นในขั้นตอนก่อนหน้าโดยใช้ไฟล์ add() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Adding image to the document
document.add(img);
ขั้นตอนที่ 7: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
โปรแกรม Java ต่อไปนี้จะสาธิตวิธีการตั้งค่ารูปภาพในตำแหน่งที่ต้องการบนเอกสาร PDF โดยใช้ไลบรารี iText สร้างเอกสาร PDF ที่มีชื่อpositionOfImage.pdfเพิ่มรูปภาพลงไปวางไว้ใกล้กึ่งกลางของหน้าและบันทึกไว้ในเส้นทาง C:/itextExamples/
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ SettingPosition.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 SettingPosition {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/EXAMPLES/itextExamples/3images/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:/EXAMPLES/itextExamples/3images/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 added");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้
javac SettingPosition.java
java SettingPosition
เมื่อดำเนินการโปรแกรมด้านบนจะสร้างเอกสาร PDF โดยแสดงข้อความต่อไปนี้
Image added
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง
ในบทนี้เราจะดูวิธีการปรับขนาดภาพในเอกสาร 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 ที่สร้างขึ้นดังที่แสดงด้านล่าง
ในบทนี้เราจะดูวิธีแทรกรูปภาพในเอกสาร 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 ที่สร้างขึ้นดังที่แสดงด้านล่าง
ในบทนี้เราจะดูวิธีการเพิ่มคำอธิบายประกอบข้อความลงในเอกสาร PDF โดยใช้ไลบรารี iText
การสร้างคำอธิบายประกอบข้อความใน PDF
คุณสามารถสร้างเอกสาร PDF เปล่าได้โดยการสร้างไฟล์ Documentชั้นเรียน. ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocument วัตถุเป็นพารามิเตอร์ของตัวสร้าง
ในการใช้คำอธิบายประกอบข้อความในเอกสาร PDF ของคุณคุณต้องสร้างวัตถุของไฟล์ PdfTextAnnotation และเพิ่มสิ่งนี้ลงในไฟล์ PdfPage.
ต่อไปนี้เป็นขั้นตอนในการใช้คำอธิบายประกอบข้อความในเอกสาร PDF
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter
PdfWriterคลาสแทน DocWriter สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. ตัวสร้างของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงเส้นทางของไฟล์ที่จะสร้าง PDF
สร้างอินสแตนซ์คลาส PdfWriter โดยส่งค่าสตริง (แสดงถึงเส้นทางที่คุณต้องการสร้าง PDF) ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfWriter
String dest = "C:/itextExamples/textAnnotation.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: การสร้างวัตถุ PdfAnnotation
PdfAnnotation คลาสของแพ็คเกจ com.itextpdf.kernel.pdf.annot แสดงถึงซูเปอร์คลาสของคำอธิบายประกอบทั้งหมด
ในบรรดาคลาสที่ได้รับ PdfTextAnnotationคลาสแทนคำอธิบายประกอบข้อความ สร้างออบเจ็กต์ของคลาสนี้ตามที่แสดงด้านล่าง
// Creating PdfAnnotation
Rectangle rect = new Rectangle(20, 800, 0, 0);
PdfAnnotation ann = new PdfTextAnnotation(rect);
ขั้นตอนที่ 5: การตั้งค่าสีของคำอธิบายประกอบ
ตั้งค่าสีให้กับคำอธิบายประกอบโดยใช้ setColor() วิธีการของ PdfAnnotationชั้นเรียน. ด้วยวิธีนี้ให้ส่งไฟล์color วัตถุที่แสดงสีของคำอธิบายประกอบเป็นพารามิเตอร์
// Setting color to the annotation
ann.setColor(Color.GREEN);
ขั้นตอนที่ 6: การตั้งชื่อและเนื้อหาของคำอธิบายประกอบ
ตั้งชื่อเรื่องและเนื้อหาของคำอธิบายประกอบโดยใช้ setTitle() และ setContents() วิธีการของ PdfAnnotation คลาสตามลำดับดังที่แสดงด้านล่าง
// Setting title to the annotation
ann.setTitle(new PdfString("Hello"));
// Setting contents of the annotation
ann.setContents("Hi welcome to Tutorialspoint.");
ขั้นตอนที่ 7: การเพิ่มคำอธิบายประกอบลงในเพจ
สร้างไฟล์ PdfPage คลาสโดยใช้ addNewPage() วิธีการของคลาส PdfDocument และเพิ่มคำอธิบายประกอบข้างต้นโดยใช้ addAnnotation() วิธีการของ PdfPage ชั้นเรียนดังที่แสดงด้านล่าง
// Creating a new page PdfPage page =
pdf.addNewPage();
// Adding annotation to a page in a PDF
page.addAnnotation(ann);
ขั้นตอนที่ 8: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
โปรแกรม Java ต่อไปนี้สาธิตวิธีการเพิ่มคำอธิบายประกอบข้อความลงในเอกสาร PDF โดยใช้ไลบรารี iText สร้างเอกสาร PDF ที่มีชื่อtextAnnotation.pdfเพิ่มคำอธิบายประกอบข้อความลงไปและบันทึกไว้ในเส้นทาง C:/itextExamples/
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ TextAnnotation.java.
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfString;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.annot.PdfAnnotation;
import com.itextpdf.kernel.pdf.annot.PdfTextAnnotation;
import com.itextpdf.layout.Document;
public class TextAnnotation {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/textAnnotation.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument
PdfDocument pdf = new PdfDocument(writer);
// Creating a Document
Document document = new Document(pdf);
// Creating PdfTextAnnotation object
Rectangle rect = new Rectangle(20, 800, 0, 0);
PdfAnnotation ann = new PdfTextAnnotation(rect);
// Setting color to the annotation
ann.setColor(Color.GREEN);
// Setting title to the annotation
ann.setTitle(new PdfString("Hello"));
// Setting contents of the annotation
ann.setContents("Hi welcome to Tutorialspoint.");
// Creating a new page
PdfPage page = pdf.addNewPage();
// Adding annotation to a page in a PDF
page.addAnnotation(ann);
// Closing the document
document.close();
System.out.println("Annotation added successfully");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้
javac TextAnnotation.java
java TextAnnotation
เมื่อดำเนินการโปรแกรมข้างต้นจะสร้างเอกสาร PDF ที่แสดงข้อความต่อไปนี้
Annotation added successfully
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง
ในบทนี้เราจะดูวิธีการเพิ่มคำอธิบายประกอบลิงก์ไปยังเอกสาร PDF โดยใช้ไลบรารี iText
การสร้างคำอธิบายประกอบลิงก์ใน PDF
คุณสามารถสร้างเอกสาร PDF เปล่าได้โดยการสร้างไฟล์ Documentชั้นเรียน. ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocument วัตถุเป็นพารามิเตอร์ของตัวสร้าง
ในการใช้คำอธิบายประกอบข้อความในเอกสาร PDF ของคุณคุณต้องสร้างออบเจ็กต์ของคลาส PdfTextAnnotation และเพิ่มสิ่งนี้ลงใน PdfPage
ต่อไปนี้เป็นขั้นตอนในการใช้คำอธิบายประกอบข้อความในเอกสาร PDF
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter
PdfWriterคลาสแทน DocWriter สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. ตัวสร้างของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงเส้นทางของไฟล์ที่จะสร้าง PDF
เริ่มต้นไฟล์ PdfWriter คลาสโดยส่งค่าสตริง (แสดงเส้นทางที่คุณต้องการสร้าง PDF) ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfWriter
String dest = "C:/itextExamples/linkAnnotation.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: การสร้างวัตถุ PdfAnnotation
PdfAnnotation คลาสของแพ็คเกจ com.itextpdf.kernel.pdf.annot แสดงถึงซูเปอร์คลาสของคำอธิบายประกอบทั้งหมด
ในบรรดาคลาสที่ได้รับ PdfLinkAnnotationคลาสแสดงคำอธิบายประกอบลิงก์ สร้างออบเจ็กต์ของคลาสนี้ดังที่แสดงด้านล่าง
// Creating a PdfLinkAnnotation object
Rectangle rect = new Rectangle(0, 0);
PdfLinkAnnotation annotation = new PdfLinkAnnotation(rect);
ขั้นตอนที่ 5: ตั้งค่าการทำงานของคำอธิบายประกอบ
ตั้งค่าการดำเนินการกับคำอธิบายประกอบโดยใช้ setAction() วิธีการของ PdfLinkAnnotation ชั้นเรียนดังที่แสดงด้านล่าง
// Setting action of the annotation
PdfAction action = PdfAction.createURI("http: // www.tutorialspoint.com/");
annotation.setAction(action);
ขั้นตอนที่ 6: สร้างลิงค์
สร้างลิงค์โดยสร้างอินสแตนซ์ไฟล์ Link คลาสของแพ็คเกจ com.itextpdf.layout.elementดังที่แสดงด้านล่าง
// Creating a link
Link link = new Link("Click here", annotation);
ขั้นตอนที่ 7: การเพิ่มคำอธิบายประกอบลิงก์ไปยังย่อหน้า
สร้างย่อหน้าใหม่โดยสร้างอินสแตนซ์ไฟล์ Paragraph คลาสและเพิ่มลิงค์ที่สร้างขึ้นในขั้นตอนก่อนหน้าโดยใช้ add() วิธีการของคลาสนี้ดังที่แสดงด้านล่าง
// Creating a paragraph
Paragraph paragraph = new Paragraph("Hi welcome to Tutorialspoint ");
// Adding link to paragraph
paragraph.add(link.setUnderline());
ขั้นตอนที่ 8: การเพิ่มย่อหน้าลงในเอกสาร
เพิ่มย่อหน้าลงในเอกสารโดยใช้ add() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Adding paragraph to document
document.add(paragraph);
ขั้นตอนที่ 9: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
โปรแกรม Java ต่อไปนี้สาธิตวิธีการเพิ่มคำอธิบายประกอบลิงก์ไปยังเอกสาร PDF โดยใช้ไลบรารี iText
สร้างเอกสาร PDF ที่มีชื่อ linkAnnotation.pdfเพิ่มคำอธิบายประกอบลิงก์ลงไปและบันทึกไว้ในเส้นทาง C:/itextExamples/
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ LinkAnnotation.java.
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.action.PdfAction;
import com.itextpdf.kernel.pdf.annot.PdfLinkAnnotation;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Link;
import com.itextpdf.layout.element.Paragraph;
public class LinkAnnotation {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/linkAnnotation.pdf";
PdfWriter writer = new
PdfWriter(dest);
// Creating a PdfDocument
PdfDocument pdf = new PdfDocument(writer);
// Creating a Document
Document document = new Document(pdf);
// Creating a PdfLinkAnnotation object
Rectangle rect = new Rectangle(0, 0);
PdfLinkAnnotation annotation = new PdfLinkAnnotation(rect);
// Setting action of the annotation
PdfAction action = PdfAction.createURI("http:// www.tutorialspoint.com/");
annotation.setAction(action);
// Creating a link
Link link = new Link("Click here", annotation);
// Creating a paragraph
Paragraph paragraph = new Paragraph("Hi welcome to Tutorialspoint ");
// Adding link to paragraph
paragraph.add(link.setUnderline());
// Adding paragraph to document
document.add(paragraph);
// Closing the document
document.close();
System.out.println("Annotation added successfully");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -
javac LinkAnnotation.java
java LinkAnnotation
เมื่อดำเนินการโปรแกรมข้างต้นจะสร้างเอกสาร PDF ที่แสดงข้อความต่อไปนี้
Annotation added successfully
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง
ในบทนี้เราจะดูวิธีการเพิ่มคำอธิบายประกอบบรรทัดลงในเอกสาร PDF โดยใช้ไลบรารี iText
การสร้างคำอธิบายบรรทัดในรูปแบบ Pdf
คุณสามารถสร้างเอกสาร PDF เปล่าได้โดยการสร้างไฟล์ Documentชั้นเรียน. ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocument ออบเจ็กต์เป็นพารามิเตอร์ไปยังตัวสร้าง
ในการใช้คำอธิบายประกอบข้อความในเอกสาร PDF ของคุณคุณต้องสร้างวัตถุของไฟล์ PdfTextAnnotation และเพิ่มสิ่งนี้ลงในไฟล์ PdfPage.
ต่อไปนี้เป็นขั้นตอนในการใช้คำอธิบายประกอบข้อความในเอกสาร PDF
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter
PdfWriterคลาสแทน DocWriter สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. ตัวสร้างของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงเส้นทางของไฟล์ที่จะสร้าง PDF
สร้างอินสแตนซ์คลาส PdfWriter โดยการส่งค่าสตริงที่แสดงเส้นทางที่คุณต้องการสร้าง PDF ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfWriter
String dest = "C:/itextExamples/lineAnnotation.pdf";
PdfWriter writer = new PdfWriter(dest);
เมื่อออบเจ็กต์ประเภทนี้ถูกส่งผ่านไปยัง PdfDocument (คลาส) ทุกองค์ประกอบที่เพิ่มในเอกสารนี้จะถูกเขียนลงในไฟล์ที่ระบุ
ขั้นตอนที่ 2: การสร้างวัตถุ PdfDocument
PdfDocumentคลาสคือคลาสที่แสดงถึง PDFDocument ใน iText คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. ในการสร้างอินสแตนซ์คลาสนี้ (ในโหมดการเขียน) คุณต้องส่งผ่านอ็อบเจ็กต์ของคลาสPdfWriter ไปยังผู้สร้าง
สร้างอินสแตนซ์คลาส PdfDocument โดยส่งออบเจ็กต์ PdfWriter ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
เมื่อสร้างวัตถุ PdfDocument แล้วคุณสามารถเพิ่มองค์ประกอบต่างๆเช่นหน้าแบบอักษรสิ่งที่แนบมาของไฟล์ตัวจัดการเหตุการณ์โดยใช้วิธีการตามลำดับที่จัดเตรียมโดยคลาสของมัน
ขั้นตอนที่ 3: การสร้างวัตถุเอกสาร
Document คลาสของแพ็คเกจ com.itextpdf.layoutเป็นองค์ประกอบหลักในขณะที่สร้าง PDF แบบพอเพียง หนึ่งในตัวสร้างของคลาสนี้ยอมรับอ็อบเจ็กต์ของคลาสPdfDocument.
สร้างอินสแตนซ์คลาสเอกสารโดยส่งผ่านอ็อบเจ็กต์ของคลาส PdfDocument สร้างขึ้นในขั้นตอนก่อนหน้าดังที่แสดงด้านล่าง
// Creating a Document
Document document = new Document(pdfDoc);
ขั้นตอนที่ 4: การสร้างวัตถุ PdfAnnotation
PdfAnnotation คลาสของแพ็คเกจ com.itextpdf.kernel.pdf.annot แสดงถึงเป็นซูเปอร์คลาสของคำอธิบายประกอบทั้งหมด
ในบรรดาคลาสที่ได้รับ PdfLineAnnotationคลาสแทนคำอธิบายประกอบบรรทัด สร้างออบเจ็กต์ของคลาสนี้ตามที่แสดงด้านล่าง
// Creating PdfAnnotation
Rectangle rect = new Rectangle(20, 800, 0, 0);
PdfAnnotation annotation = new PdfLineAnnotation(rect);
ขั้นตอนที่ 5: การตั้งค่าสีของคำอธิบายประกอบ
ตั้งค่าสีให้กับคำอธิบายประกอบโดยใช้ setColor() วิธีการของ PdfAnnotationชั้นเรียน. วิธีนี้ให้ส่งผ่านวัตถุสีที่แสดงสีของคำอธิบายประกอบเป็นพารามิเตอร์
// Setting color to the annotation
annotation.setColor(Color.BLUE);
ขั้นตอนที่ 6: การตั้งชื่อและเนื้อหาของคำอธิบายประกอบ
ตั้งชื่อเรื่องและเนื้อหาของคำอธิบายประกอบโดยใช้ setTitle() และ setContents() วิธีการของ PdfAnnotation คลาสตามลำดับดังที่แสดงด้านล่าง
// Setting title to the PdfLineAnnotation
annotation.setTitle(new PdfString("iText"));
// Setting contents of the PdfLineAnnotation
annotation.setContents("Hi welcome to Tutorialspoint");
ขั้นตอนที่ 7: การเพิ่มคำอธิบายประกอบลงในเพจ
สร้างไฟล์ PdfPage คลาสโดยใช้ addNewPage() วิธีการของ PdfDocument คลาสและเพิ่มคำอธิบายประกอบที่สร้างไว้ข้างต้นโดยใช้เมธอด addAnnotation () ของคลาส PdfPage ดังที่แสดงด้านล่าง
// Creating a new page
PdfPage page = pdf.addNewPage();
// Adding annotation to a page in a PDF
page.addAnnotation(annotation);
ขั้นตอนที่ 8: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
โปรแกรม Java ต่อไปนี้สาธิตวิธีการเพิ่มคำอธิบายประกอบบรรทัดลงในเอกสาร PDF โดยใช้ไลบรารี iText สร้างเอกสาร PDF ที่มีชื่อlineAnnotation.pdfเพิ่มคำอธิบายประกอบบรรทัดลงไปและบันทึกไว้ในเส้นทาง C:/itextExamples/.
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ LineAnnotation.java.
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfString;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.annot.PdfAnnotation;
import com.itextpdf.kernel.pdf.annot.PdfLineAnnotation;
import com.itextpdf.layout.Document;
public class LineAnnotation {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/lineAnnotations.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument
PdfDocument pdf = new PdfDocument(writer);
// Creating a Document
Document document = new Document(pdf);
// Creating a PdfPage
PdfPage page = pdf.addNewPage();
// creating PdfLineAnnotation object
Rectangle rect = new Rectangle(0, 0);
float[] floatArray = new float[]{
20, 790, page.getPageSize().getWidth() - 20, 790
};
PdfAnnotation annotation = new PdfLineAnnotation(rect, floatArray);
// Setting color of the PdfLineAnnotation
annotation.setColor(Color.BLUE);
// Setting title to the PdfLineAnnotation
annotation.setTitle(new PdfString("iText"));
// Setting contents of the PdfLineAnnotation
annotation.setContents("Hi welcome to Tutorialspoint");
// Adding annotation to the page
page.addAnnotation(annotation);
// Closing the document
document.close();
System.out.println("Annotation added successfully");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -
javac LineAnnotation.java
java LineAnnotation
เมื่อดำเนินการโปรแกรมข้างต้นจะสร้างเอกสาร PDF ที่แสดงข้อความต่อไปนี้
Annotation added successfully
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง
ในบทนี้เราจะดูวิธีการเพิ่มคำอธิบายประกอบมาร์กอัปข้อความลงในเอกสาร PDF โดยใช้ไลบรารี iText
การสร้างคำอธิบายประกอบมาร์กอัปใน PDF
คุณสามารถสร้างเอกสาร PDF เปล่าได้โดยการสร้างไฟล์ Documentชั้นเรียน. ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocumentวัตถุเป็นพารามิเตอร์ของตัวสร้าง ในการใช้คำอธิบายประกอบข้อความในเอกสาร PDF ของคุณคุณต้องสร้างวัตถุของไฟล์PdfTextAnnotation และเพิ่มสิ่งนี้ลงในไฟล์ PdfPage.
ต่อไปนี้เป็นขั้นตอนในการใช้คำอธิบายประกอบข้อความในเอกสาร PDF
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter
PdfWriterคลาสแทน DocWriter สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. ตัวสร้างของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงเส้นทางของไฟล์ที่จะสร้าง PDF
สร้างอินสแตนซ์คลาส PdfWriter โดยส่งค่าสตริง (แสดงถึงเส้นทางที่คุณต้องการสร้าง PDF) ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfWriter
String dest = "C:/itextExamples/markupAnnotation.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: การสร้างวัตถุ PdfAnnotation
PdfAnnotation คลาสของแพ็คเกจ com.itextpdf.kernel.pdf.annot แสดงถึงซูเปอร์คลาสของคำอธิบายประกอบทั้งหมด
ในบรรดาคลาสที่ได้รับ PdfTextMarkupAnnotationคลาสแสดงคำอธิบายประกอบมาร์กอัปข้อความ สร้างออบเจ็กต์ของคลาสนี้ตามที่แสดงด้านล่าง
// Creating a PdfTextMarkupAnnotation object
Rectangle rect = new Rectangle(105, 790, 64, 10);
float[] floatArray = new float[]{169, 790, 105, 790, 169, 800, 105, 800};
PdfAnnotation annotation = PdfTextMarkupAnnotation.createHighLight(rect,floatArray);
ขั้นตอนที่ 5: การตั้งค่าสีของคำอธิบายประกอบ
ตั้งค่าสีให้กับคำอธิบายประกอบโดยใช้ setColor() วิธีการของ PdfAnnotationชั้นเรียน. สำหรับวิธีนี้ให้ส่งผ่านวัตถุสีที่เป็นตัวแทนของcolor ของคำอธิบายประกอบเป็นพารามิเตอร์
// Setting color to the annotation
annotation.setColor(Color.YELLOW);
ขั้นตอนที่ 6: การตั้งชื่อและเนื้อหาของคำอธิบายประกอบ
ตั้งชื่อเรื่องและเนื้อหาของคำอธิบายประกอบโดยใช้ setTitle() และ setContents() วิธีการของ PdfAnnotation ชั้นเรียนตามลำดับ
// Setting title to the annotation
annotation.setTitle(new PdfString("Hello!"));
// Setting contents to the annotation
annotation.setContents(new PdfString("Hi welcome to Tutorialspoint"));
ขั้นตอนที่ 7: การเพิ่มคำอธิบายประกอบลงในเพจ
สร้างไฟล์ PdfPage คลาสโดยใช้ addNewPage() วิธีการของ PdfDocument คลาสและเพิ่มคำอธิบายประกอบที่สร้างขึ้นด้านบนโดยใช้ addAnnotation() วิธีการของคลาส PdfPage ดังที่แสดงด้านล่าง
// Creating a new Pdfpage
PdfPage pdfPage = pdfDoc.addNewPage();
// Adding annotation to a page in a PDF
pdfPage.addAnnotation(annotation);
ขั้นตอนที่ 8: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
โปรแกรม Java ต่อไปนี้สาธิตวิธีการเพิ่มคำอธิบายประกอบมาร์กอัปข้อความลงในเอกสาร PDF โดยใช้ไลบรารี iText สร้างเอกสาร PDF ที่มีชื่อmarkupAnnotation.pdfเพิ่มคำอธิบายประกอบมาร์กอัปข้อความลงไปและบันทึกไว้ในเส้นทาง C:/itextExamples/
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ MarkupAnnotation.java.
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfString;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.annot.PdfAnnotation;
import com.itextpdf.kernel.pdf.annot.PdfTextMarkupAnnotation;
import com.itextpdf.layout.Document;
public class MarkupAnnotation {
public static void main(String args[]) throws Exception {
// Creating a PdfDocument object
String file = "C:/itextExamples/markupAnnotation.pdf";
PdfDocument pdfDoc = new PdfDocument(new PdfWriter(file));
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating a PdfTextMarkupAnnotation object
Rectangle rect = new Rectangle(105, 790, 64, 10);
float[] floatArray = new float[]{169, 790, 105, 790, 169, 800, 105, 800};
PdfAnnotation annotation =
PdfTextMarkupAnnotation.createHighLight(rect,floatArray);
// Setting color to the annotation
annotation.setColor(Color.YELLOW);
// Setting title to the annotation
annotation.setTitle(new PdfString("Hello!"));
// Setting contents to the annotation
annotation.setContents(new PdfString("Hi welcome to Tutorialspoint"));
// Creating a new Pdfpage
PdfPage pdfPage = pdfDoc.addNewPage();
// Adding annotation to a page in a PDF
pdfPage.addAnnotation(annotation);
// Closing the document
doc.close();
System.out.println("Annotation added successfully");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -
javac MarkupAnnotation.java
java MarkupAnnotation
เมื่อดำเนินการโปรแกรมข้างต้นจะสร้างเอกสาร PDF ที่แสดงข้อความต่อไปนี้
Annotation added successfully
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง
ในบทนี้เราจะดูวิธีการเพิ่มคำอธิบายประกอบวงกลมลงในเอกสาร PDF โดยใช้ไลบรารี iText
การสร้างคำอธิบายประกอบวงกลมใน PDF
คุณสามารถสร้างเอกสาร PDF เปล่าได้โดยการสร้างไฟล์ Documentชั้นเรียน. ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocument วัตถุเป็นพารามิเตอร์ของตัวสร้าง
ในการใช้คำอธิบายประกอบข้อความในเอกสาร PDF ของคุณคุณต้องสร้างออบเจ็กต์ของคลาส PdfTextAnnotation และเพิ่มสิ่งนี้ลงใน Pdfpage.
ต่อไปนี้เป็นขั้นตอนในการใช้คำอธิบายประกอบข้อความในเอกสาร PDF
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter
PdfWriterคลาสแทน DocWriter สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. ตัวสร้างของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงเส้นทางของไฟล์ที่จะสร้าง PDF
เริ่มต้นไฟล์ PdfWriter คลาสโดยส่งค่าสตริง (แสดงเส้นทางที่คุณต้องการสร้าง PDF) ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfWriter
String dest = "C:/itextExamples/circleAnnotation.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: การสร้างวัตถุ PdfAnnotation
PdfAnnotation คลาสของแพ็คเกจ com.itextpdf.kernel.pdf.annot แสดงถึงซูเปอร์คลาสของคำอธิบายประกอบทั้งหมด
ในบรรดาคลาสที่ได้รับ PdfCircleAnnotationคลาสแทนคำอธิบายประกอบวงกลม สร้างออบเจ็กต์ของคลาสนี้ตามที่แสดงด้านล่าง
// Creating a PdfCircleAnnotation object Rectangle
rect = new Rectangle(150, 770, 50, 50);
PdfAnnotation annotation = new PdfCircleAnnotation(rect);
ขั้นตอนที่ 5: การตั้งค่าสีของคำอธิบายประกอบ
ตั้งค่าสีให้กับคำอธิบายประกอบโดยใช้ setColor() วิธีการของ PdfAnnotationชั้นเรียน. วิธีนี้ให้ส่งผ่านวัตถุสีที่แสดงสีของคำอธิบายประกอบเป็นพารามิเตอร์
// Setting color to the annotation
annotation.setColor(Color.YELLOW);
ขั้นตอนที่ 6: การตั้งชื่อและเนื้อหาของคำอธิบายประกอบ
ตั้งชื่อเรื่องและเนื้อหาของคำอธิบายประกอบโดยใช้ setTitle() และ setContents() วิธีการของ PdfAnnotation ชั้นเรียนตามลำดับ
// Setting title to the annotation
annotation.setTitle(new PdfString("circle annotation"));
// Setting contents of the annotation
annotation.setContents(new PdfString("Hi welcome to Tutorialspoint"));
ขั้นตอนที่ 7: การเพิ่มคำอธิบายประกอบลงในเพจ
สร้างไฟล์ PdfPage คลาสโดยใช้ addNewPage() วิธีการของ PdfDocument คลาสและเพิ่มคำอธิบายประกอบที่สร้างขึ้นด้านบนโดยใช้ addAnnotation() วิธีการของคลาส PdfPage ดังที่แสดงด้านล่าง
// Creating a new page
PdfPage page = pdf.addNewPage();
// Adding annotation to a page in a PDF
page.addAnnotation(ann);
ขั้นตอนที่ 8: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
โปรแกรม Java ต่อไปนี้สาธิตวิธีการเพิ่มคำอธิบายประกอบวงกลมลงในเอกสาร PDF โดยใช้ไลบรารี iText สร้างเอกสาร PDF ที่มีชื่อcircleAnnotation.pdfเพิ่มคำอธิบายประกอบวงกลมลงไปและบันทึกไว้ในเส้นทาง C:/itextExamples/
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ PdfCircleAnnotation.java.
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfString;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.annot.PdfAnnotation;
import com.itextpdf.kernel.pdf.annot.PdfCircleAnnotation;
import com.itextpdf.layout.Document;
public class CircleAnnotation {
public static void main(String args[]) throws Exception {
// Creating a PdfDocument object
String file = "C:/itextExamples// circleAnnotation.pdf";
PdfDocument pdf = new PdfDocument(new PdfWriter(file));
// Creating a Document object
Document doc = new Document(pdf);
// Creating a PdfCircleAnnotation object
Rectangle rect = new Rectangle(150, 770, 50, 50);
PdfAnnotation annotation = new PdfCircleAnnotation(rect);
// Setting color to the annotation
annotation.setColor(Color.YELLOW);
// Setting title to the annotation
annotation.setTitle(new PdfString("circle annotation"));
// Setting contents of the annotation
annotation.setContents(new PdfString("Hi welcome to Tutorialspoint"));
// Creating a new page
PdfPage page = pdf.addNewPage();
// Adding annotation to a page in a PDF
page.addAnnotation(annotation);
// Closing the document
doc.close();
System.out.println("Annotation added successfully");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -
javac PdfCircleAnnotation.java
java PdfCircleAnnotation
เมื่อดำเนินการโปรแกรมข้างต้นจะสร้างเอกสาร PDF ที่แสดงข้อความต่อไปนี้
Annotation added successfully
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง
ในบทนี้เราจะดูวิธีการวาดส่วนโค้งบนเอกสาร PDF โดยใช้ไลบรารี iText
การวาดส่วนโค้งบน PDF
คุณสามารถสร้างเอกสาร PDF เปล่าได้โดยการสร้างไฟล์ Documentชั้นเรียน. ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocument วัตถุเป็นพารามิเตอร์ของตัวสร้าง
ในการวาดส่วนโค้งบน PdfDocument ให้สร้างอินสแตนซ์ไฟล์ PdfCanvas คลาสของแพ็คเกจ com.itextpdf.kernel.pdf.canvas และสร้างส่วนโค้งโดยใช้ arc() วิธีการของคลาสนี้
ต่อไปนี้เป็นขั้นตอนในการวาดส่วนโค้งบนเอกสาร PDF
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter
PdfWriterคลาสแทน DocWriter สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. ตัวสร้างของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงเส้นทางของไฟล์ที่จะสร้าง PDF
สร้างอินสแตนซ์คลาส PdfWriter โดยส่งค่าสตริง (แสดงถึงเส้นทางที่คุณต้องการสร้าง PDF) ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfWriter
String dest = "C:/itextExamples/drawingArc.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: การสร้างวัตถุ PdfCanvas
สร้างไฟล์ PdfPage คลาสโดยใช้ addNewPage() วิธีการของ PdfDocument ชั้นเรียน.
เริ่มต้นไฟล์ PdfCanvas วัตถุของแพ็คเกจ com.itextpdf.kernel.pdf.canvas โดยผ่านสิ่งที่สร้างไว้ข้างต้น PdfPage วัตถุตัวสร้างของคลาสนี้ดังที่แสดงด้านล่าง
// Creating a new page
PdfPage pdfPage = pdfDoc.addNewPage();
// Creating a PdfCanvas object
PdfCanvas canvas = new PdfCanvas(pdfPage);
ขั้นตอนที่ 5: วาดส่วนโค้ง
วาดส่วนโค้งโดยใช้ arc() วิธีการของ Canvas ชั้นเรียนและเติมโดยใช้ fill() วิธีการดังที่แสดงด้านล่าง
// Drawing an arc
canvas.arc(50, 50, 300, 545, 0, 360);
// Filling the arc
canvas.fill();
ขั้นตอนที่ 6: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
โปรแกรม Java ต่อไปนี้สาธิตวิธีการวาดส่วนโค้งในเอกสาร PDF โดยใช้ไลบรารี iText
สร้างเอกสาร PDF ที่มีชื่อ drawingArc.pdfวาดส่วนโค้งเข้าไปและบันทึกไว้ในเส้นทาง C:/itextExamples/
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ DrawingArc.java.
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
import com.itextpdf.layout.Document;
public class DrawingArc {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/drawingArc.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument object
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating a new page
PdfPage pdfPage = pdfDoc.addNewPage();
// Creating a PdfCanvas object
PdfCanvas canvas = new PdfCanvas(pdfPage);
// Drawing an arc
canvas.arc(50, 50, 300, 545, 0, 360);
// Filling the arc
canvas.fill();
// Closing the document
doc.close();
System.out.println("Object drawn on pdf successfully");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -
javac DrawingArc.java
java DrawingArc
เมื่อดำเนินการโปรแกรมด้านบนจะสร้างเอกสาร PDF โดยแสดงข้อความต่อไปนี้
Object drawn on pdf successfully
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง
ในบทนี้เราจะดูวิธีการลากเส้นบนเอกสาร PDF โดยใช้ไลบรารี iText
วาดเส้นบน PDF
คุณสามารถสร้างเอกสาร PDF เปล่าได้โดยการสร้างไฟล์ Documentชั้นเรียน. ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocument ออบเจ็กต์เป็นพารามิเตอร์ไปยังตัวสร้าง
ในการลากเส้นบน PdfDocument ให้สร้างไฟล์ PdfCanvas คลาสของแพ็คเกจ com.itextpdf.kernel.pdf.canvas และสร้างบรรทัดโดยใช้ไฟล์ moveTo() และ lineTO() วิธีการของคลาสนี้
ต่อไปนี้เป็นขั้นตอนในการลากเส้นบนเอกสาร pdf
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter
PdfWriterคลาสแทน DocWriter สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. ตัวสร้างของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงเส้นทางของไฟล์ที่จะสร้าง PDF
สร้างอินสแตนซ์คลาส PdfWriter โดยส่งค่าสตริง (แสดงถึงเส้นทางที่คุณต้องการสร้าง PDF) ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfWriter
String dest = "C:/itextExamples/drawingLine.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: การสร้างวัตถุ PdfCanvas
สร้างไฟล์ PdfPage คลาสโดยใช้ addNewPage() วิธีการของ PdfDocument ชั้นเรียน.
เริ่มต้นไฟล์ PdfCanvas วัตถุของแพ็คเกจ com.itextpdf.kernel.pdf.canvas โดยผ่านสิ่งที่สร้างไว้ข้างต้น PdfPage วัตถุตัวสร้างของคลาสนี้ดังที่แสดงด้านล่าง
// Creating a new page
PdfPage pdfPage = pdfDoc.addNewPage();
// Creating a PdfCanvas object
PdfCanvas canvas = new PdfCanvas(pdfPage);
ขั้นตอนที่ 5: วาดเส้น
กำหนดจุดเริ่มต้นของบรรทัดโดยใช้ moveTO() วิธีการของ Canvas ชั้นเรียนดังที่แสดงด้านล่าง
// Initial point of the line
canvas.moveTo(100, 300);
ตอนนี้ลากเส้นจากจุดนี้ไปยังอีกจุดหนึ่งโดยใช้ lineTo() วิธีการดังที่แสดงด้านล่าง
// Drawing the line
canvas.lineTo(500, 300);
ขั้นตอนที่ 6: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
โปรแกรม Java ต่อไปนี้สาธิตวิธีการลากเส้นในเอกสาร PDF โดยใช้ไลบรารี iText สร้างเอกสาร PDF ที่มีชื่อdrawingLine.pdfวาดส่วนโค้งเข้าไปและบันทึกไว้ในเส้นทาง C:/itextExamples/
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ DrawingLine.java.
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
import com.itextpdf.layout.Document;
public class DrawingLine {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/drawingLine.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument object
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating a new page
PdfPage pdfPage = pdfDoc.addNewPage();
// Creating a PdfCanvas object
PdfCanvas canvas = new PdfCanvas(pdfPage);
// Initial point of the line
canvas.moveTo(100, 300);
// Drawing the line
canvas.lineTo(500, 300);
// Closing the path stroke
canvas.closePathStroke();
// Closing the document
doc.close();
System.out.println("Object drawn on pdf successfully");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -
javac DrawingLine.java
java DrawingLine
เมื่อดำเนินการโปรแกรมด้านบนจะสร้างเอกสาร PDF โดยแสดงข้อความต่อไปนี้
Object drawn on pdf successfully
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง
ในบทนี้เราจะดูวิธีวาดวงกลมบนเอกสาร PDF โดยใช้ไลบรารี iText
การวาดวงกลมบน Pdf
คุณสามารถสร้างเอกสาร PDF เปล่าได้โดยการสร้างไฟล์ Documentชั้นเรียน. ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocument วัตถุเป็นพารามิเตอร์ของตัวสร้าง
ในการวาดวงกลมบน PdfDocument ให้สร้างอินสแตนซ์ไฟล์ PdfCanvas คลาสของแพ็คเกจ com.itextpdf.kernel.pdf.canvas และเรียกใช้ไฟล์ circle() วิธีการของคลาสนี้
ต่อไปนี้เป็นขั้นตอนในการวาดวงกลมบนเอกสาร PDF
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter
PdfWriterคลาสแทน DocWriter สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. ตัวสร้างของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงเส้นทางของไฟล์ที่จะสร้าง PDF
สร้างอินสแตนซ์คลาส PdfWriter โดยส่งค่าสตริง (แสดงถึงเส้นทางที่คุณต้องการสร้าง PDF) ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfWriter
String dest = "C:/itextExamples/drawingCircle.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: การสร้างวัตถุ PdfCanvas
สร้างไฟล์ PdfPage คลาสโดยใช้ addNewPage() วิธีการของ PdfDocumentชั้นเรียน. เริ่มต้นไฟล์PdfCanvas วัตถุของแพ็คเกจ com.itextpdf.kernel.pdf.canvas โดยผ่านไฟล์ PdfPage วัตถุตัวสร้างของคลาสนี้ดังที่แสดงด้านล่าง
// Creating a new page
PdfPage pdfPage = pdfDoc.addNewPage();
// Creating a PdfCanvas object
PdfCanvas canvas = new PdfCanvas(pdfPage);
ขั้นตอนที่ 5 การตั้งค่าสี
กำหนดสีของวงกลมโดยใช้ setColor() วิธีการของ Canvas ชั้นเรียนดังที่แสดงด้านล่าง
// Setting color to the circle
Color color = Color.GREEN;
canvas.setColor(color, true);
ขั้นตอนที่ 6: วาดวงกลม
วาดวงกลมโดยเรียกใช้ไฟล์ circle() วิธีการของ Canvasดังที่แสดงด้านล่าง
// creating a circle
canvas.circle(300, 400, 200);
ขั้นตอนที่ 7: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
โปรแกรม Java ต่อไปนี้สาธิตวิธีการวาดวงกลมบนเอกสาร pdf โดยใช้ไลบรารี iText สร้างเอกสาร PDF ที่มีชื่อdrawingCircle.pdfวาดวงกลมในนั้นและบันทึกไว้ในเส้นทาง C:/itextExamples/
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ DrawingCircle.java.
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
import com.itextpdf.layout.Document;
public class DrawingCircle {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/drawingCircle.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument object
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating a new page
PdfPage pdfPage = pdfDoc.addNewPage();
// Creating a PdfCanvas object
PdfCanvas canvas = new PdfCanvas(pdfPage);
// Setting color to the circle
Color color = Color.GREEN;
canvas.setColor(color, true);
// creating a circle
canvas.circle(300, 400, 200);
// Filling the circle
canvas.fill();
// Closing the document
doc.close();
System.out.println("Object drawn on pdf successfully");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้
javac DrawingCircle.java
java DrawingCircle
เมื่อดำเนินการโปรแกรมข้างต้นจะสร้างเอกสาร PDF ที่แสดงข้อความต่อไปนี้
Object drawn on pdf successfully
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง
ในบทนี้เราจะดูวิธีตั้งค่าสีและแบบอักษรเป็นข้อความในเอกสาร PDF โดยใช้ไลบรารี iText
การตั้งค่าแบบอักษรของข้อความใน PDF
คุณสามารถสร้างเอกสาร PDF เปล่าได้โดยการสร้างไฟล์ Documentชั้นเรียน. ในขณะที่สร้างอินสแตนซ์คลาสนี้คุณต้องผ่านไฟล์PdfDocument วัตถุเป็นพารามิเตอร์ของตัวสร้าง
ในการเพิ่มย่อหน้าในเอกสารคุณต้องสร้างอินสแตนซ์ไฟล์ Paragraph คลาสและเพิ่มวัตถุนี้ลงในเอกสารโดยใช้ add()วิธี. คุณสามารถกำหนดสีและแบบอักษรให้กับข้อความโดยใช้วิธีการsetFontColor() และ setFont() ตามลำดับ
ต่อไปนี้เป็นขั้นตอนในการตั้งค่าสีและแบบอักษรเป็นข้อความในเอกสาร pdf
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter
PdfWriterคลาสแทน DocWriter สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. ตัวสร้างของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงเส้นทางของไฟล์ที่จะสร้าง PDF
สร้างอินสแตนซ์คลาส PdfWriter โดยส่งค่าสตริง (แสดงถึงเส้นทางที่คุณต้องการสร้าง PDF) ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfWriter
String dest = "C:/itextExamples/fonts.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
สร้างอินสแตนซ์คลาสเอกสารโดยส่งผ่านอ็อบเจ็กต์ของคลาส PdfDocument สร้างขึ้นในขั้นตอนก่อนหน้าดังที่แสดงด้านล่าง
// Creating a Document
Document document = new Document(pdfDoc);
ขั้นตอนที่ 4: การสร้างข้อความ
สร้างข้อความโดยสร้างอินสแตนซ์ไฟล์ Text คลาสของแพ็คเกจ com.itextpdf.layout.element ดังแสดงด้านล่าง
// Creating text object
Text text = new Text("Tutorialspoint");
ขั้นตอนที่ 5: การตั้งค่าแบบอักษรและสีให้กับข้อความ
สร้างไฟล์ PdfFont วัตถุโดยใช้ createFont() วิธีการของคลาส PdfFontFactory ของแพ็คเกจ com.itextpdf.kernel.font ดังแสดงด้านล่าง
// Setting font of the text PdfFont
font = PdfFontFactory.createFont(FontConstants.HELVETICA_BOLD);
ตอนนี้ตั้งค่าแบบอักษรเป็นข้อความโดยใช้ setFont() วิธีการของ Textคลาสเป็นวิธีนี้ ผ่านไฟล์PdfFont ออบเจ็กต์เป็นพารามิเตอร์ดังที่แสดงด้านล่าง
text1.setFont(font);
ในการกำหนดสีให้กับข้อความให้เรียกใช้ไฟล์ setFontColor() วิธีการของคลาส Text ดังที่แสดงด้านล่าง
// Setting font color
text.setFontColor(Color.GREEN);
ขั้นตอนที่ 6: การเพิ่มข้อความในย่อหน้า
สร้างไฟล์ Paragraph คลาสออบเจ็กต์และเพิ่มข้อความที่สร้างขึ้นด้านบนโดยใช้ add() วิธีการดังที่แสดงด้านล่าง
// Creating Paragraph
Paragraph paragraph = new Paragraph();
// Adding text to the paragraph
paragraph.add(text);
ขั้นตอนที่ 7: การเพิ่มย่อหน้าลงในเอกสาร
เพิ่มย่อหน้าลงในเอกสารโดยใช้ add() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
doc.add(paragraph1)
ขั้นตอนที่ 8: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
โปรแกรม Java ต่อไปนี้สาธิตวิธีการตั้งค่าสีและแบบอักษรเป็นข้อความใน PDF โดยใช้ไลบรารี iText สร้างเอกสาร PDF ที่มีชื่อfonts.pdfจัดรูปแบบข้อความและบันทึกไว้ในเส้นทาง C:/itextExamples/
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ FormatingTheText.java.
import com.itextpdf.io.font.FontConstants;
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.font.PdfFontFactory;
import com.itextpdf.kernel.font.PdfFont;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;
import com.itextpdf.layout.element.Text;
public class FormatingTheText {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter object
String dest = "C:/itextExamples/fonts.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument object
PdfDocument pdf = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdf);
// Creating text object
Text text1 = new Text("Tutorialspoint");
// Setting font of the text
PdfFont font = PdfFontFactory.createFont(FontConstants.HELVETICA_BOLD);
text1.setFont(font);
// Setting font color
text1.setFontColor(Color.GREEN);
// Creating text object
Text text2 = new Text("Simply Easy Learning");
text2.setFont(PdfFontFactory.createFont(FontConstants.HELVETICA));
// Setting font color
text2.setFontColor(Color.BLUE);
// Creating Paragraph
Paragraph paragraph1 = new Paragraph();
// Adding text1 to the paragraph
paragraph1.add(text1);
paragraph1.add(text2);
// Adding paragraphs to the document
doc.add(paragraph1);
doc.close();
System.out.println("Text added to pdf ..");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -
javac FormatingTheText.java
java FormatingTheText
เมื่อดำเนินการโปรแกรมข้างต้นจะสร้างเอกสาร PDF ที่แสดงข้อความต่อไปนี้
Text added to pdf ..
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง
ในบทนี้เราจะดูวิธีการปรับขนาดภาพในเอกสาร PDF โดยใช้ไลบรารี iText
การย่อขนาดเนื้อหาใน PDF
ต่อไปนี้เป็นขั้นตอนในการย่อขนาดเนื้อหาของหน้า PDF โดยใช้ไลบรารี iText
ขั้นตอนที่ 1: การสร้างวัตถุ PdfWriter และ PdfReader
PdfWriterคลาสแทน DocWriter สำหรับ PDF คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. ตัวสร้างของคลาสนี้ยอมรับสตริงซึ่งแสดงถึงเส้นทางของไฟล์ที่จะสร้าง PDF
สร้างอินสแตนซ์คลาส PdfWriter โดยส่งค่าสตริง (แสดงถึงเส้นทางที่คุณต้องการสร้าง PDF) ไปยังตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfWriter object
String dest = "C:/itextExamples/shrinking.pdf";
PdfWriter writer = new PdfWriter(dest);
หากต้องการอ่านข้อมูลจาก pdf ที่มีอยู่ให้สร้างไฟล์ PdfReader วัตถุดังที่แสดงด้านล่าง
// Creating a PdfReader
String src = "C:/itextExamples/pdfWithImage.pdf";
PdfReader reader = new PdfReader(src);
ขั้นตอนที่ 2: การสร้างวัตถุ PdfDocument
PdfDocumentคลาสคือคลาสที่แสดงถึงเอกสาร PDF ใน iText คลาสนี้เป็นของแพ็คเกจcom.itextpdf.kernel.pdf. ในการสร้างอินสแตนซ์คลาสนี้ (ในโหมดการเขียน) คุณต้องส่งผ่านอ็อบเจ็กต์ของคลาสPdfWriter ไปยังผู้สร้าง
สร้างเอกสาร PDF ต้นทางและปลายทางโดยส่งไฟล์ PdfWriter และ PdfReader วัตถุของตัวสร้างดังที่แสดงด้านล่าง
// Creating a PdfDocument objects
PdfDocument destpdf = new PdfDocument(writer);
PdfDocument srcPdf = new PdfDocument(reader);
ขั้นตอนที่ 3: เปิดเพจจาก PDF ที่มีอยู่
รับหน้าจาก PDF ต้นทางโดยใช้ไฟล์ getPage() วิธีการของ PdfPageชั้นเรียน. ใช้วัตถุนี้รับขนาดของหน้าเอกสารต้นฉบับดังที่แสดงด้านล่าง
// Opening a page from the existing PDF
PdfPage origPage = srcPdf.getPage(1);
// Getting the page size
Rectangle orig = origPage.getPageSizeWithRotation();
ขั้นตอนที่ 4: การย่อขนาดเนื้อหาของไฟล์ pdf ต้นฉบับ
ใช้ getScaleInstance() วิธีการของ AffineTransform คลาสย่อขนาดเนื้อหาของหน้าของเอกสารต้นทางดังที่แสดงด้านล่าง
// Shrink original page content using transformation matrix
AffineTransform transformationMatrix = AffineTransform.getScaleInstance(
page.getPageSize().getWidth()/ orig.getWidth()/2,
page.getPageSize().getHeight()/ orig.getHeight()/2);
ขั้นตอนที่ 5: คัดลอกหน้า
เชื่อมต่อไฟล์ affine transform matrixสร้างขึ้นในขั้นตอนก่อนหน้าไปยังเมทริกซ์ของ canvas วัตถุของเอกสาร PDF ปลายทางดังที่แสดงด้านล่าง
// Concatenating the affine transform matrix to the current matrix
PdfCanvas canvas = new PdfCanvas(page);
canvas.concatMatrix(transformationMatrix);
ตอนนี้เพิ่มสำเนาหน้าลงในไฟล์ canvas ออบเจ็กต์ของ PDF ปลายทางไปยังเอกสารต้นทางดังที่แสดงด้านล่าง
// Add the object to the canvas
PdfFormXObject pageCopy = origPage.copyAsFormXObject(destpdf);
canvas.addXObject(pageCopy, 0, 0);
ขั้นตอนที่ 6: การสร้างวัตถุเอกสาร
Document คลาสของแพ็คเกจ com.itextpdf.layoutเป็นองค์ประกอบหลักในขณะที่สร้าง PDF แบบพอเพียง หนึ่งในตัวสร้างของคลาสนี้ยอมรับอ็อบเจ็กต์ของคลาส PdfDocument
เริ่มต้นไฟล์ Document คลาสโดยส่งผ่านวัตถุของคลาส PdfDocumentดังที่แสดงด้านล่าง
// Creating a Document
Document document = new Document(destpdf);
ขั้นตอนที่ 7: การปิดเอกสาร
ปิดเอกสารโดยใช้ close() วิธีการของ Document ชั้นเรียนดังที่แสดงด้านล่าง
// Closing the document
document.close();
ตัวอย่าง
โปรแกรม Java ต่อไปนี้สาธิตวิธีการย่อขนาดเนื้อหาของเพจ PDF โดยใช้ไลบรารี iText สร้างเอกสาร PDF ที่มีชื่อshrinkingPDF.pdfย่อขนาดรูปภาพใน pdf และบันทึกไว้ในเส้นทาง C:/itextExamples/
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ ShrinkingPDF.java.
import com.itextpdf.kernel.geom.AffineTransform;
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
import com.itextpdf.kernel.pdf.xobject.PdfFormXObject;
import com.itextpdf.layout.Document;
public class ShrinkPDF {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter object
String dest = "C:/itextExamples/shrinking.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfReader
String src = "C:/itextExamples/pdfWithImage.pdf";
PdfReader reader = new PdfReader(src);
// Creating a PdfDocument objects
PdfDocument destpdf = new PdfDocument(writer);
PdfDocument srcPdf = new PdfDocument(reader);
// Opening a page from the existing PDF
PdfPage origPage = srcPdf.getPage(1);
// Getting the page size
Rectangle orig = origPage.getPageSizeWithRotation();
// Adding a page to destination Pdf
PdfPage page = destpdf.addNewPage();
// Scaling the image in a Pdf page
AffineTransform transformationMatrix = AffineTransform.getScaleInstance(
page.getPageSize().getWidth()/orig.getWidth()/2,
page.getPageSize().getHeight()/ orig.getHeight()/2);
// Shrink original page content using transformation matrix
PdfCanvas canvas = new PdfCanvas(page);
canvas.concatMatrix(transformationMatrix);
// Add the object to the canvas
PdfFormXObject pageCopy = origPage.copyAsFormXObject(destpdf);
canvas.addXObject(pageCopy, 0, 0);
// Creating a Document object
Document doc = new Document(destpdf);
// Closing the document
doc.close();
System.out.println("Table created successfully..");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -
javac ShrinkingPDF.java
java ShrinkingPDF
เมื่อดำเนินการโปรแกรมด้านบนจะสร้างเอกสาร PDF โดยแสดงข้อความต่อไปนี้
Table created successfully..
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง
โปรแกรม Java ต่อไปนี้สาธิตวิธีการไทล์เนื้อหาของเพจ PDF ไปยังเพจต่างๆโดยใช้ไลบรารี iText สร้างเอกสาร PDF ที่มีชื่อtilingPdfPages.pdf และบันทึกไว้ในเส้นทาง C:/itextExamples/.
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ TilingPDFPages.java.
import com.itextpdf.kernel.geom.AffineTransform;
import com.itextpdf.kernel.geom.PageSize;
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
import com.itextpdf.kernel.pdf.xobject.PdfFormXObject;
public class TilingPDFPages {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter object
String dest = "C:/itextExamples/tilingPdfPages.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfReader
String src = "C:/itextExamples/pdfWithImage.pdf";
PdfReader reader = new PdfReader(src);
// Creating a PdfDocument objects
PdfDocument destpdf = new PdfDocument(writer);
PdfDocument srcPdf = new PdfDocument(reader);
// Opening a page from the existing PDF
PdfPage origPage = srcPdf.getPage(1);
// Getting the page size
Rectangle orig = origPage.getPageSizeWithRotation();
// Getting the size of the page
PdfFormXObject pageCopy = origPage.copyAsFormXObject(destpdf);
// Tile size
Rectangle tileSize = PageSize.A4.rotate();
AffineTransform transformationMatrix =
AffineTransform.getScaleInstance(tileSize.getWidth() / orig.getWidth() *
2f, tileSize.getHeight() / orig.getHeight() * 2f);
// The first tile
PdfPage page =
destpdf.addNewPage(PageSize.A4.rotate());
PdfCanvas canvas = new PdfCanvas(page);
canvas.concatMatrix(transformationMatrix);
canvas.addXObject(pageCopy, 0, -orig.getHeight() / 2f);
// The second tile
page = destpdf.addNewPage(PageSize.A4.rotate());
canvas = new PdfCanvas(page);
canvas.concatMatrix(transformationMatrix);
canvas.addXObject(pageCopy, -orig.getWidth() / 2f, -orig.getHeight() / 2f);
// The third tile
page = destpdf.addNewPage(PageSize.A4.rotate());
canvas = new PdfCanvas(page);
canvas.concatMatrix(transformationMatrix);
canvas.addXObject(pageCopy, 0, 0);
// The fourth tile
page = destpdf.addNewPage(PageSize.A4.rotate());
canvas = new PdfCanvas(page);
canvas.concatMatrix(transformationMatrix);
canvas.addXObject(pageCopy, -orig.getWidth() / 2f, 0);
// closing the documents
destpdf.close();
srcPdf.close();
System.out.println("PDF created successfully..");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -
javac TilingPDFPages.java
java TilingPDFPages
เมื่อดำเนินการโปรแกรมด้านบนจะสร้างเอกสาร PDF โดยแสดงข้อความต่อไปนี้
PDF created successfully..
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง -
โปรแกรม Java ต่อไปนี้สาธิตวิธีการ N-up บนเพจ PDF โดยใช้ไลบรารี iText สร้างเอกสาร PDF ที่มีชื่อnUppingPDF.pdf และบันทึกไว้ในเส้นทาง C:/itextExamples/
บันทึกรหัสนี้ในไฟล์ที่มีชื่อ NUppingPDF.java.
import com.itextpdf.kernel.geom.AffineTransform;
import com.itextpdf.kernel.geom.PageSize;
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
import com.itextpdf.kernel.pdf.xobject.PdfFormXObject;
public class NUppingPDF {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter object
String dest = "C:/itextExamples/nUppingPDF.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfReader
String src = "C:/itextExamples/pdfWithImage.pdf";
PdfReader reader = new PdfReader(src);
// Creating a PdfDocument objects
PdfDocument destpdf = new PdfDocument(writer);
PdfDocument srcPdf = new PdfDocument(reader);
// Opening a page from the existing PDF
PdfPage origPage = srcPdf.getPage(1);
Rectangle orig = origPage.getPageSize();
PdfFormXObject pageCopy = origPage.copyAsFormXObject(destpdf);
// N-up page
PageSize nUpPageSize = PageSize.A4.rotate();
PdfPage page = destpdf.addNewPage(nUpPageSize);
PdfCanvas canvas = new PdfCanvas(page);
// Scale page
AffineTransform transformationMatrix = AffineTransform.getScaleInstance(
nUpPageSize.getWidth() / orig.getWidth() /
2f, nUpPageSize.getHeight() / orig.getHeight() / 2f);
canvas.concatMatrix(transformationMatrix);
// Add pages to N-up page
canvas.addXObject(pageCopy, 0, orig.getHeight());
canvas.addXObject(pageCopy, orig.getWidth(), orig.getHeight());
canvas.addXObject(pageCopy, 0, 0);
canvas.addXObject(pageCopy, orig.getWidth(), 0);
// closing the documents
destpdf.close();
srcPdf.close();
System.out.println("PDF created successfully..");
}
}
คอมไพล์และเรียกใช้ไฟล์ Java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้ -
javac NUppingPDF.java
java NUppingPDF
เมื่อดำเนินการโปรแกรมข้างต้นจะสร้างเอกสาร PDF ที่แสดงข้อความต่อไปนี้
PDF created successfully..
หากคุณตรวจสอบเส้นทางที่ระบุคุณจะพบเอกสาร PDF ที่สร้างขึ้นดังที่แสดงด้านล่าง