การเพิ่มบันทึกย่อหรือลายน้ำแบบกำหนดเองมักต้องการให้คุณเพิ่มข้อความลงใน 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 เดียวกันสำหรับแต่ละไฟล์.

อ่านเพิ่มเติม