ในบทความนี้ คุณจะได้เรียนรู้วิธีสร้างไฟล์ PDF ตั้งแต่เริ่มต้นโดยใช้โปรแกรมใน Java

สร้างเอกสาร PDF โดยใช้ Java

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

Java API เพื่อสร้าง PDF - ดาวน์โหลดฟรี

Aspose.PDF for Java คือ API การจัดการไฟล์ PDF ที่ให้คุณสร้างไฟล์ PDF จากภายในแอปพลิเคชัน Java เมื่อใช้ API คุณสามารถสร้างเอกสาร PDF ที่เรียบง่ายและซับซ้อนได้ Aspose.PDF for Java สามารถดาวน์โหลดเป็น JAR หรือติดตั้งภายในแอปพลิเคชันที่ใช้ Maven

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>20.11</version>
    <classifier>jdk17</classifier>
</dependency>

สร้างไฟล์ PDF ใน Java

ต่อไปนี้เป็นขั้นตอนในการสร้างไฟล์ PDF อย่างง่ายตั้งแต่เริ่มต้นและแทรกข้อความลงไป

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างไฟล์ PDF โดยใช้ Java

// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-pdf/Aspose.PDF-for-Java
// เริ่มต้นวัตถุเอกสาร
Document document = new Document();
 
//เพิ่มหน้า
Page page = document.getPages().add();
 
// เพิ่มข้อความในหน้าใหม่
page.getParagraphs().add(new TextFragment("Hello World!"));
 
// บันทึก PDF ที่อัปเดต
document.save("HelloWorld_out.pdf");

สร้างไฟล์ PDF ด้วยการจัดรูปแบบข้อความใน Java

มาดูวิธีใช้การจัดรูปแบบกับข้อความในเอกสาร PDF กัน การจัดรูปแบบข้อความอาจรวมถึงฟอนต์ ขนาดฟอนต์ สี ตำแหน่ง และอื่นๆ ต่อไปนี้เป็นขั้นตอนในการดำเนินการนี้

  • ใช้คลาส Document เพื่อสร้างเอกสาร PDF ใหม่หรือโหลดเอกสารที่มีอยู่
  • เข้าสู่ หน้า ที่คุณต้องการวางข้อความ
  • สร้างวัตถุของ TextFragment เพื่อตั้งค่าข้อความและตัวเลือกการจัดรูปแบบอื่นๆ เช่น ตำแหน่ง แบบอักษร สี ขนาด ฯลฯ
  • ใช้คลาส TextBuilder เพื่อเพิ่มวัตถุ TextFragment ลงในเพจ
  • ใช้เมธอด Document.save(String) เพื่อบันทึกเอกสาร PDF

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างไฟล์ PDF และใช้การจัดรูปแบบข้อความโดยใช้ Java

// โหลดเอกสาร PDF
Document document = new Document();

// เพิ่มหน้า
Page page = document.getPages().add();

// สร้างส่วนข้อความ
TextFragment textFragment = new TextFragment(
		"Text 1: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment.setPosition(new Position(100, 700));
TextFragment textFragment1 = new TextFragment(
		"Text 2: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment1.setPosition(new Position(100, 600));

// ตั้งค่าคุณสมบัติข้อความ
textFragment.getTextState().setFontSize(12);
textFragment.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
textFragment.getTextState().setBackgroundColor(Color.getLightGray());
textFragment.getTextState().setForegroundColor(Color.getRed());

textFragment1.getTextState().setDrawTextRectangleBorder(true);
textFragment1.getTextState().setUnderline(true);
textFragment1.getTextState().setStrikeOut(true);

// สร้างสีใหม่ด้วย pattern colorspace
Color color = new Color();
color.setPatternColorSpace(new GradientAxialShading(Color.getRed(), Color.getBlue()));		
textFragment1.getTextState().setForegroundColor(color);

// สร้างวัตถุ TextBuilder
TextBuilder textBuilder = new TextBuilder(page);

// ผนวกส่วนข้อความต่อท้ายหน้า PDF
textBuilder.appendText(textFragment);
textBuilder.appendText(textFragment1);

// บันทึกเอกสาร PDF
document.save("Generated-PDF.pdf");

Java สร้างไฟล์ PDF ด้วยรูปภาพ

ต่อไปนี้เป็นขั้นตอนในการแทรกรูปภาพในไฟล์ PDF โดยใช้ Aspose.PDF for Java

  • สร้างวัตถุ Document เพื่อสร้างหรือเปิดเอกสาร PDF
  • รับหน้าที่คุณต้องการเพิ่มรูปภาพในวัตถุ หน้า
  • เพิ่มรูปภาพลงในคอลเลกชัน Page.getResources()
  • ใช้ตัวดำเนินการเพื่อวางภาพบนหน้า:
    • GSave operator to save the current graphical state.
    • ConcatenateMatrix operator to specify where the image is to be placed.
    • ทำ operator to draw the image on the page.
    • สุดท้าย ใช้โอเปอเรเตอร์ GRestore เพื่อบันทึกสถานะกราฟิกที่อัปเดต
  • บันทึกไฟล์ PDF

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแทรกรูปภาพในไฟล์ PDF ในภาษาจาวา

// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// เปิดเอกสาร
Document pdfDocument1 = new Document("input.pdf");

// ตั้งพิกัด
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;

// รับหน้าที่คุณต้องการเพิ่มรูปภาพ
Page page = pdfDocument1.getPages().get_Item(1);

// โหลดภาพลงในสตรีม
java.io.FileInputStream imageStream = new java.io.FileInputStream(new java.io.File("input_image1.jpg"));

// เพิ่มรูปภาพไปยังคอลเลกชันรูปภาพของทรัพยากรหน้า
page.getResources().getImages().add(imageStream);

// การใช้ตัวดำเนินการ GSave: ตัวดำเนินการนี้จะบันทึกสถานะกราฟิกปัจจุบัน
page.getContents().add(new Operator.GSave());

// สร้างวัตถุสี่เหลี่ยมผืนผ้าและเมทริกซ์
Rectangle rectangle = new Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] { rectangle.getURX() - rectangle.getLLX(), 0, 0, rectangle.getURY() - rectangle.getLLY(), rectangle.getLLX(), rectangle.getLLY() });

// การใช้ตัวดำเนินการ ConcatenateMatrix (concatenate matrix): กำหนดวิธีการวางรูปภาพ
page.getContents().add(new Operator.ConcatenateMatrix(matrix));
XImage ximage = page.getResources().getImages().get_Item(page.getResources().getImages().size());

// การใช้ตัวดำเนินการ Do: ตัวดำเนินการนี้วาดภาพ
page.getContents().add(new Operator.Do(ximage.getName()));

// การใช้ตัวดำเนินการ GRestore: ตัวดำเนินการนี้จะกู้คืนสถานะกราฟิก
page.getContents().add(new Operator.GRestore());

// บันทึก PDF ใหม่
pdfDocument1.save("Updated_document.pdf");

// ปิดสตรีมรูปภาพ
imageStream.close();

สร้างตารางในไฟล์ PDF ใน Java

ตารางเป็นวิธีที่ดีในการจัดระเบียบข้อมูลในรูปแบบของแถวและคอลัมน์ Aspose.PDF ให้คุณแทรกตารางในเอกสาร PDF ได้อย่างง่ายดาย ต่อไปนี้เป็นขั้นตอนในการสร้างตาราง

  • โหลดไฟล์ต้นฉบับโดยใช้คลาส Document
  • เริ่มต้น Table และตั้งค่าคอลัมน์และแถว
  • กำหนดการตั้งค่าของตาราง (เช่น เส้นขอบ)
  • เติมตารางโดยเพิ่มแถวเข้าไป
  • เพิ่มตารางไปยังหน้า
  • บันทึกไฟล์ PDF

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างตารางในไฟล์ PDF ในภาษาจาวา

// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// โหลดเอกสาร PDF ต้นทาง
Document doc = new Document(dataDir + "input.pdf");
// เริ่มต้นอินสแตนซ์ใหม่ของตาราง
Table table = new Table();
// กำหนดสีขอบตารางเป็น LightGray
table.setBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// กำหนดเส้นขอบให้กับเซลล์ตาราง
table.setDefaultCellBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// สร้างลูปเพื่อเพิ่ม 10 แถว
for (int row_count = 1; row_count < 10; row_count++) {
	// เพิ่มแถวลงในตาราง
	Row row = table.getRows().add();
	// เพิ่มเซลล์ตาราง
	row.getCells().add("Column (" + row_count + ", 1)");
	row.getCells().add("Column (" + row_count + ", 2)");
	row.getCells().add("Column (" + row_count + ", 3)");
}
// เพิ่มวัตถุตารางไปที่หน้าแรกของเอกสารอินพุต
doc.getPages().get_Item(1).getParagraphs().add(table);
// บันทึกเอกสารที่อัปเดตซึ่งมีวัตถุตาราง
doc.save(dataDir + "document_with_table.pdf");

สร้างแบบฟอร์มในไฟล์ PDF ใน Java

รูปแบบ PDF ยังรองรับการเพิ่มแบบฟอร์มเพื่อรวบรวมข้อมูลจากผู้ใช้ แบบฟอร์มอาจมีฟิลด์หลายประเภท เช่น กล่องข้อความ ปุ่มตัวเลือก เป็นต้น ขั้นตอนต่อไปนี้จะสาธิตวิธีการแทรกแบบฟอร์มอย่างง่ายในไฟล์ PDF

  • โหลดเอกสาร PDF หรือสร้างเอกสารใหม่โดยใช้คลาส Document
  • สร้างช่องแบบฟอร์มที่คุณต้องการเพิ่ม เช่น TextBoxField
  • ตั้งค่าคุณสมบัติของฟิลด์
  • เพิ่มฟิลด์ใน Form ของ PDF โดยใช้เมธอด pdfDocument.getForm().add(Field, Int)
  • บันทึกเอกสาร PDF

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการสร้างแบบฟอร์มในไฟล์ PDF ใน Java

// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// เปิดเอกสาร
Document pdfDocument = new Document("input.pdf");

// สร้างฟิลด์
TextBoxField textBoxField1 = new TextBoxField(pdfDocument.getPages().get_Item(1), new Rectangle(100, 200, 300, 300));

// ตั้งชื่อฟิลด์
textBoxField1.setPartialName("textbox1");

// ตั้งค่าฟิลด์
textBoxField1.setValue("Text Box");

// สร้างวัตถุเส้นขอบ
Border border = new Border(textBoxField1);

// ตั้งค่าความกว้างของเส้นขอบ
border.setWidth(5);

// ตั้งค่ารูปแบบเส้นประของเส้นขอบ
border.setDash(new Dash(1, 1));

// กำหนดเส้นขอบของฟิลด์
textBoxField1.setBorder(border);

// เพิ่มฟิลด์ลงในเอกสาร
pdfDocument.getForm().add(textBoxField1, 1);

// บันทึก PDF ที่แก้ไข
pdfDocument.save("output.pdf");

อ่านเพิ่มเติมเกี่ยวกับช่องแบบฟอร์มโดยใช้ ที่นี่

แทรกบุ๊กมาร์กในไฟล์ PDF ใน Java

ต่อไปนี้เป็นขั้นตอนในการเพิ่มบุ๊กมาร์กในไฟล์ PDF

  • เปิดเอกสาร PDF โดยใช้วัตถุ Document
  • เพิ่มโครงร่างเอกสารไปยังคอลเลกชัน OutlineItemCollection
  • กำหนดหมายเลขหน้าปลายทาง
  • เพิ่มบุ๊กมาร์กในคอลเล็กชันโครงร่างของเอกสาร
  • บันทึกไฟล์ PDF

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแทรกบุ๊กมาร์กใน PDF โดยใช้ Java

// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// เปิดเอกสาร PDF ต้นทาง
Document pdfDocument = new Document("input.pdf");

// สร้างวัตถุบุ๊กมาร์ก
OutlineItemCollection pdfOutline = new OutlineItemCollection(pdfDocument.getOutlines());
pdfOutline.setTitle("Test Outline");
pdfOutline.setItalic(true);
pdfOutline.setBold(true);

// กำหนดหมายเลขหน้าปลายทาง
pdfOutline.setAction(new GoToAction(pdfDocument.getPages().get_Item(1)));

// เพิ่มบุ๊กมาร์กในคอลเล็กชันโครงร่างของเอกสาร
pdfDocument.getOutlines().add(pdfOutline);

// บันทึกเอกสารการปรับปรุง
pdfDocument.save("output.pdf");

รับใบอนุญาตฟรี

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

บทสรุป

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

ดูสิ่งนี้ด้วย