ในบทความนี้ คุณจะได้เรียนรู้วิธีสร้างไฟล์ PDF ตั้งแต่เริ่มต้นโดยใช้โปรแกรมใน Java
PDF กลายเป็นรูปแบบไฟล์ที่ใช้กันทั่วไปในการสร้างเอกสารประเภทต่างๆ อุตสาหกรรมต่างๆ ได้นำระบบอัตโนมัติของ PDF มาใช้ในการสร้างเอกสาร เช่น ใบเสร็จรับเงิน ใบแจ้งหนี้ รายงานทางธุรกิจ เป็นต้น บทความนี้ครอบคลุมวิธีสร้างไฟล์ PDF ใน Java คอยติดตามสถานการณ์ดังกล่าว ตัวอย่างโค้ดจะสาธิตวิธีสร้างไฟล์ PDF ตั้งแต่เริ่มต้น และแทรกข้อความ รูปภาพ ตาราง และองค์ประกอบอื่นๆ ใน PDF นั้นในภาษาจาวา
- Java API เพื่อสร้างไฟล์ PDF
- สร้างไฟล์ PDF โดยใช้ Java
- ใช้การจัดรูปแบบข้อความในไฟล์ PDF
- แทรกรูปภาพในไฟล์ PDF
- สร้างตารางในไฟล์ PDF
- เพิ่มแบบฟอร์มในไฟล์ 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 อย่างง่ายตั้งแต่เริ่มต้นและแทรกข้อความลงไป
- สร้างอินสแตนซ์ของคลาส Document
- เพิ่มหน้าใหม่โดยใช้เมธอด Document.getPages().add() และรับข้อมูลอ้างอิงในวัตถุ Page
- เพิ่มข้อความไปยังหน้าโดยใช้เมธอด Page.getParagraphs().add(new TextFragment(“Hello World!”))
- บันทึกไฟล์ PDF โดยใช้วิธี Document.save(String)
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างไฟล์ 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 โดยใช้ เอกสารประกอบ