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 ที่สร้างขึ้นดังที่แสดงด้านล่าง