การเพิ่มบันทึกย่อหรือลายน้ำแบบกำหนดเองมักต้องการให้คุณเพิ่มข้อความลงใน PDF ในแอปพลิเคชัน Java. Conholdate.Total for Java เป็น SDK ที่ทรงพลังที่ช่วยให้นักพัฒนาสามารถแก้ไขไฟล์ PDF ด้วยโปรแกรมได้ คู่มือนี้จะพาคุณผ่านข้อกำหนดเบื้องต้น, การอธิบายโค้ดอย่างละเอียด, และตัวอย่างครบถ้วนเพื่อให้คุณสามารถวางข้อความกำหนดเองบน PDF ที่มีอยู่ได้อย่างง่ายดาย.
ข้อกำหนดเบื้องต้นและการตั้งค่า
ก่อนที่คุณจะเริ่ม, ตรวจสอบให้แน่ใจว่าคุณมีสิ่งต่อไปนี้:
- ติดตั้ง Java 8 หรือสูงกว่า
- Maven สำหรับการจัดการ dependencies
- IDE เช่น IntelliJ IDEA หรือ Eclipse
- ใบอนุญาต Conholdate.Total for Java ที่ถูกต้องสำหรับการใช้งานในผลิตภัณฑ์ (ดูส่วนการให้สิทธิ์ในภายหลัง)
เพิ่มที่เก็บ Maven ของ Conholdate และการพึ่งพา SDK ลงในไฟล์ pom.xml ของคุณ:
<repositories>
<repository>
<id>conholdate-repo</id>
<name>Conholdate Maven Repository</name>
<url>https://repository.conholdate.com/repo/</url>
</repository>
</repositories>
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.9</version>
<type>pom</type>
</dependency>
ดาวน์โหลดไบนารี SDK ล่าสุดจาก หน้าดาวน์โหลด. หลังจากการสร้างด้วย Maven สำเร็จ คุณพร้อมที่จะเริ่มเขียนโค้ดแล้ว ส่วนต่อไปจะแสดงอย่างชัดเจนว่าต้องโหลด PDF และแทรกข้อความอย่างไร.
เพิ่มข้อความลงใน PDF ด้วย Java: คู่มือแบบขั้นตอนต่อขั้นตอน
ด้านล่างเป็นการอธิบายสั้น ๆ ของแต่ละขั้นตอนเชิงตรรกะ โค้ดต้นฉบับทั้งหมดจะถูกแสดงอีกครั้งในภายหลังในส่วน ตัวอย่างโค้ดเต็ม
ขั้นตอนที่ 1: เปิด PDF และสร้าง TextBuilder
ขั้นแรก ให้เปิดไฟล์ PDF ต้นฉบับด้วยคลาส Document จากนั้นสร้าง TextBuilder ที่ชี้ไปยังหน้าที่คุณต้องการเพิ่มข้อความ
String dataDir = "path/to/your/document/directory/";
// Open document
Document doc = new Document(dataDir + "Conholdate.pdf");
TextBuilder builder = new TextBuilder(doc.getPages().get_Item(1));
คลาส Document และ TextBuilder ถูกบันทึกไว้ใน API reference.
ขั้นตอนที่ 2: สร้างและกำหนดค่า TextParagraph
สร้าง TextParagraph และกำหนดค่าเลย์เอาต์ของมัน: การเยื้องที่ใช้กับบรรทัดต่อไป, สี่เหลี่ยมที่กำหนดขอบเขตของพื้นที่ข้อความบนหน้า, และโหมดการตัดคำ.
// Create text paragraph
TextParagraph paragraph = new TextParagraph();
// Set subsequent lines indent
paragraph.setSubsequentLinesIndent(20);
// Specify the location to add TextParagraph
paragraph.setRectangle(new Rectangle(100, 300, 200, 700));
// Specify word wrapping mode
paragraph.getFormattingOptions().setWrapMode(TextFormattingOptions.WordWrapMode.ByWords);
ขั้นตอน 3: สร้าง TextFragment และกำหนดค่า Font
สร้าง TextFragment ที่มีข้อความที่คุณต้องการวางซ้อน จากนั้นตั้งค่าแบบอักษรและขนาดแบบอักษรผ่าน getTextState()
// Create text fragment
TextFragment fragment1 = new TextFragment("the quick brown fox jumps over the lazy dog");
fragment1.getTextState().setFont(FontRepository.findFont("Times New Roman"));
fragment1.getTextState().setFontSize(12);
ขั้นตอนที่ 4: ต่อส่วน Fragment และย่อหน้า
เพิ่มส่วนข้อความเป็นบรรทัดภายในย่อหน้า แล้วผนวกย่อหน้าไปยังหน้าโดยใช้ TextBuilder
// Add fragment to paragraph
paragraph.appendLine(fragment1);
// Add paragraph
builder.appendParagraph(paragraph);
ขั้นตอน 5: บันทึก PDF ที่แก้ไขแล้ว
สุดท้าย ให้สร้างเส้นทางเอาต์พุตและบันทึกเอกสารที่ได้ผลลัพธ์
dataDir = dataDir + "AddText_out.pdf";
// Save resulting PDF document.
doc.save(dataDir);
ด้วยขั้นตอนเหล่านี้ คุณได้ทำกระบวนการแทรกข้อความใน PDF เสร็จเรียบร้อยแล้ว.
ตัวอย่างโค้ดเต็ม: แทรกข้อความลงใน PDF ด้วย Java
ตัวอย่างต่อไปนี้แสดงกระบวนการทั้งหมดตั้งแต่การโหลดไฟล์ต้นฉบับจนถึงการบันทึก PDF ที่อัปเดต
ตัวอย่างนี้แสดงวิธีการเพิ่มข้อความลงใน PDF ที่มีอยู่แล้วโดยใช้ Conholdate.Total for Java.
import com.aspose.pdf.Document;
import com.aspose.pdf.TextBuilder;
import com.aspose.pdf.TextParagraph;
import com.aspose.pdf.Rectangle;
import com.aspose.pdf.TextFormattingOptions;
import com.aspose.pdf.TextFragment;
import com.aspose.pdf.FontRepository;
public class AddTextToPdf {
public static void main(String[] args) {
String dataDir = "path/to/your/document/directory/";
// Open document
Document doc = new Document(dataDir + "Conholdate.pdf");
TextBuilder builder = new TextBuilder(doc.getPages().get_Item(1));
// Create text paragraph
TextParagraph paragraph = new TextParagraph();
// Set subsequent lines indent
paragraph.setSubsequentLinesIndent(20);
// Specify the location to add TextParagraph
paragraph.setRectangle(new Rectangle(100, 300, 200, 700));
// Specify word wrapping mode
paragraph.getFormattingOptions().setWrapMode(TextFormattingOptions.WordWrapMode.ByWords);
// Create text fragment
TextFragment fragment1 = new TextFragment("the quick brown fox jumps over the lazy dog");
fragment1.getTextState().setFont(FontRepository.findFont("Times New Roman"));
fragment1.getTextState().setFontSize(12);
// Add fragment to paragraph
paragraph.appendLine(fragment1);
// Add paragraph
builder.appendParagraph(paragraph);
dataDir = dataDir + "AddText_out.pdf";
// Save resulting PDF document.
doc.save(dataDir);
}
}
Note: ตัวอย่างโค้ดนี้แสดงการทำงานหลักของฟังก์ชัน ก่อนนำไปใช้ในโครงการของคุณ ให้ตรวจสอบว่าได้อัปเดต
dataDirให้ชี้ไปยังไดเรกทอรีเอกสารจริงของคุณ (ซึ่งมีไฟล์Conholdate.pdf) ตรวจสอบว่าขึ้นตอนการพึ่งพาทั้งหมดได้ติดตั้งอย่างถูกต้องแล้ว และทดสอบอย่างละเอียดในสภาพแวดล้อมการพัฒนา หากพบปัญหาใด ๆ โปรดดูที่ เอกสารอย่างเป็นทางการ หรือ ติดต่อ ทีมสนับสนุน เพื่อขอความช่วยเหลือ.
สรุป
ในบทแนะนำนี้ เราได้แสดงวิธีการเพิ่มข้อความลงใน PDF ด้วย Java โดยใช้คุณสมบัติที่แข็งแกร่งของ Conholdate.Total for Java. โดยทำตามขั้นตอนทีละขั้นตอน คุณสามารถสร้างย่อหน้าข้อความได้อย่างมั่นใจด้วย TextBuilder และ TextParagraph, ควบคุมการจัดรูปแบบฟอนต์ผ่าน TextFragment, และบันทึกเอกสารที่แก้ไขแล้ว. SDK จะจัดการพิกัดหน้า PDF และการเรนเดอร์ข้อความภายในโดยอัตโนมัติ ทำให้คุณสามารถมุ่งเน้นที่ตรรกะของธุรกิจได้. อย่าลืมรับใบอนุญาตที่เหมาะสมสำหรับการใช้งานในสภาพแวดล้อมการผลิต; คุณสามารถขอรับใบอนุญาตชั่วคราวจาก หน้าลิขสิทธิ์ชั่วคราว หรือสำรวจตัวเลือกการกำหนดราคาได้ที่ หน้าราคา. ด้วยเครื่องมือเหล่านี้ การปรับปรุง PDF ด้วยข้อความที่กำหนดเองจะกลายเป็นส่วนที่ง่ายดายในแอปพลิเคชัน Java ของคุณ.
คำถามที่พบบ่อย
ฉันจะเพิ่มข้อความลงใน PDF ด้วย Java อย่างไรโดยไม่ทำให้เนื้อหาเดิมถูกเขียนทับ?
ใช้builder.appendParagraph(paragraph)ตามที่แสดงในตัวอย่าง;TextBuilderจะเพิ่มย่อหน้าใหม่ลงในหน้าที่กำหนดโดยคงเนื้อหาที่มีอยู่ไว้.สามารถเพิ่มข้อความลายน้ำแบบกำหนดเองลงใน PDF ด้วย Java ได้หรือไม่?
ใช่. วิธีเดียวกันทำงานกับลายน้ำ — สร้างTextFragmentด้วยข้อความลายน้ำที่ต้องการ, กำหนดฟอนต์และขนาดที่เหมาะสม (หรือความโปร่งใสผ่าน text state), และเพิ่มมันผ่านTextParagraphบนแต่ละหน้า.ฉันควรทำอย่างไรหากข้อความที่แทรกไม่แสดงอย่างถูกต้องสำหรับบางภาษา?
เลือกฟอนต์ที่รองรับชุดอักขระที่ต้องการด้วยFontRepository.findFont()SDK จะเคารพการตั้งค่าฟอนต์ที่กำหนดผ่านgetTextState()และ เอกสารประกอบ ให้คำแนะนำเกี่ยวกับการจัดการสคริปต์ต่าง ๆฉันสามารถประมวลผลหลายไฟล์ PDF เป็นชุดเพื่อเพิ่มข้อความเดียวกันได้หรือไม่?
แน่นอน. ห่อโค้ดไว้ในลูปที่วนซ้ำผ่านรายการของเส้นทางไฟล์, ใช้ตรรกะDocument/TextBuilderเดียวกันสำหรับแต่ละไฟล์.
