การจัดรูปแบบขีดทับมักจำเป็นเพื่อระบุการลบ การแก้ไข หรือภารกิจที่เสร็จสมบูรณ์ในเอกสารที่สร้างขึ้น Conholdate.Total for Java มี SDK ที่แข็งแกร่งที่ช่วยให้คุณจัดการเอกสาร Word อย่างโปรแกรมเมติก ในคู่มือนี้คุณจะได้เรียนรู้วิธีเพิ่มข้อความขีดทับใน Java สำรวจตัวเลือกการกำหนดค่า ดูแนวปฏิบัติที่ดีที่สุดด้านประสิทธิภาพ และรันตัวอย่างครบถ้วนที่คุณสามารถปรับใช้กับโครงการของคุณเองได้

ก่อนที่คุณจะเริ่ม: ข้อกำหนดเบื้องต้นและการติดตั้ง

เพื่อทำตามบทแนะนำนี้คุณต้องมี:

  • Java 17 หรือใหม่กว่า ที่ติดตั้งบนเครื่องพัฒนาของคุณ.
  • Maven 3.6+ สำหรับการจัดการ dependencies.
  • IDE เช่น IntelliJ IDEA หรือ Eclipse.

เพิ่มที่เก็บ 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 ล่าสุดจาก หน้าดาวน์โหลด หากคุณต้องการตั้งค่าด้วยตนเอง เมื่อการพึ่งพาถูกแก้ไขแล้ว คุณพร้อมที่จะเริ่มเขียนโค้ด ส่วนต่อไปจะอธิบายขั้นตอนแต่ละขั้นของการเพิ่มข้อความขีดฆ่าใน Java.

คู่มือขั้นตอนการทำข้อความขีดฆ่าใน Java

ขั้นตอนที่ 1: โหลดเอกสารต้นทาง

ขั้นแรก ให้สร้างอินสแตนซ์ของ Document. หากไฟล์อินพุตมีอยู่ SDK จะโหลดไฟล์นั้น; หากไม่มีจะสร้างเอกสารเปล่าใหม่.

String inputPath = "input.docx";
Document doc;
File inputFile = new File(inputPath);
if (inputFile.exists()) {
    doc = new Document(inputPath); // loads existing DOCX
} else {
    doc = new Document();          // creates a new blank document
    doc.removeAllChildren();       // ensure it's empty
}

คลาส Document ถูกอธิบายไว้ใน เอกสารอ้างอิง API

ขั้นตอน 2: เขียนย่อหน้าปกติ

ใช้ DocumentBuilder เพื่อเพิ่มย่อหน้าปกติ ซึ่งแสดงให้เห็นว่าข้อความทั่วไปไม่ได้รับผลกระทบจากการตั้งค่าเส้นขีดฆ่า.

DocumentBuilder builder = new DocumentBuilder(doc);
builder.moveToDocumentEnd();
builder.writeln("This is a normal paragraph.");

ขั้นตอนที่ 3: ใช้การจัดรูปแบบขีดฆ่า

เปิดใช้งานฟีเจอร์ขีดเส้นผ่านกลางบนฟอนต์ของตัวสร้างก่อนเขียนข้อความที่มีสไตล์

builder.getFont().setStrikeThrough(true);
builder.writeln("This text is rendered with strikethrough.");
builder.getFont().setStrikeThrough(false); // reset for subsequent text

ขั้นตอนที่ 4: ค้นหาและใช้การขีดฆ่าแบบมีเงื่อนไข

วนซ้ำผ่านอ็อบเจ็กต์ Run ทั้งหมด, ค้นหาคำ “strike” และใช้การจัดรูปแบบโดยโปรแกรม

for (Paragraph para : (Iterable<Paragraph>) doc.getChildNodes(NodeType.PARAGRAPH, true)) {
    for (Run run : (Iterable<Run>) para.getChildNodes(NodeType.RUN, true)) {
        String text = run.getText();
        if (text != null && text.toLowerCase().contains("strike")) {
            run.getFont().setStrikeThrough(true);
        }
    }
}

ขั้นตอน 5: บันทึกเอกสาร

สุดท้าย ให้เขียนเอกสารที่แก้ไขแล้วลงดิสก์ในรูปแบบ DOCX

String outputPath = "output.docx";
doc.save(outputPath, SaveFormat.DOCX);

เมื่อบันทึกเอกสารแล้ว คุณสามารถเปิด output.docx เพื่อตรวจสอบว่าการจัดรูปแบบขีดทับปรากฏตามที่คาดหวัง.

ตัวอย่างการทำงานเต็มสำหรับข้อความขีดเส้นทับ ตัวอย่าง Java

โค้ดต่อไปนี้แสดงขั้นตอนการทำงานทั้งหมดสำหรับการเพิ่มข้อความขีดฆ่าใน Java โดยใช้ Conholdate.Total.

import com.aspose.words.*;

import java.io.File;

public class StrikethroughExample {
    public static void main(String[] args) {
        String inputPath = "input.docx";
        String outputPath = "output.docx";

Document doc = null;
        try {
            File inputFile = new File(inputPath);
            if (inputFile.exists()) {
                doc = new Document(inputPath);
            } else {
                doc = new Document();
                doc.removeAllChildren();
            }

DocumentBuilder builder = new DocumentBuilder(doc);
            builder.moveToDocumentEnd();

builder.writeln("This is a normal paragraph.");

builder.getFont().setStrikeThrough(true);
            builder.writeln("This text is rendered with strikethrough.");
            builder.getFont().setStrikeThrough(false);

for (Paragraph para : (Iterable<Paragraph>) doc.getChildNodes(NodeType.PARAGRAPH, true)) {
                for (Run run : (Iterable<Run>) para.getChildNodes(NodeType.RUN, true)) {
                    String text = run.getText();
                    if (text != null && text.toLowerCase().contains("strike")) {
                        run.getFont().setStrikeThrough(true);
                    }
                }
            }

doc.save(outputPath, SaveFormat.DOCX);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (doc != null) {
                doc = null;
            }
        }
    }
}

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

ปรับแต่งตัวเลือกการจัดรูปแบบการขีดเส้นทับ

SDK ช่วยให้คุณควบคุมแอตทริบิวต์ของฟอนต์เพิ่มเติม เช่น สี, ขนาด, และการขีดเส้นใต้ ในขณะที่ยังเปิดใช้งานฟลักการ strike‑through ตัวอย่างเช่น คุณสามารถเปลี่ยนสีของข้อความที่ถูก strike‑through ได้:

builder.getFont().setColor(java.awt.Color.RED);
builder.getFont().setStrikeThrough(true);
builder.writeln("Important deletion highlighted in red.");

หากคุณต้องการใช้สไตล์เดียวกันกับหลาย Run ให้พิจารณาสร้างอินสแตนซ์ Font ที่สามารถนำกลับมาใช้ใหม่ได้และกำหนดให้กับแต่ละ Run เพื่อหลีกเลี่ยงการตั้งค่าคุณสมบัติซ้ำ ๆ.

ข้อควรพิจารณาด้านประสิทธิภาพสำหรับการเรนเดอร์เส้นขีด

  1. Reuse the Document object - โหลดเอกสารเพียงครั้งเดียวและทำการแก้ไขทั้งหมดในเซสชันเดียวจะลดภาระ I/O.
  2. Batch style changes - ใช้แฟล็ก strike‑through กับคอลเลกชัน Paragraph หรือ Run แทนการสลับสำหรับแต่ละอักขระ.
  3. Avoid unnecessary traversals - ลูปเงื่อนไขที่ค้นหาคำว่า “strike” ควรทำงานเฉพาะเมื่อคุณต้องการสไตล์แบบไดนามิกจริงๆ.
  4. Stream output when possible - สำหรับเอกสารขนาดใหญ่ ใช้ doc.save(OutputStream, SaveFormat.DOCX) เพื่อเขียนโดยตรงไปยังสตรีมและประหยัดหน่วยความจำ.

เคล็ดลับเหล่านี้ช่วยให้การใช้หน่วยความจำต่ำและเวลาในการดำเนินการเร็ว โดยเฉพาะเมื่อประมวลผลเอกสารหลายร้อยฉบับในงานแบบแบตช์.

สรุปสุดท้าย

การเพิ่มข้อความขีดฆ่าใน Java ทำได้อย่างง่ายดายด้วย Conholdate.Total for Java. API แบบ fluent ของ SDK ช่วยให้คุณผสานย่อหน้าปกติและย่อหน้าที่มีสไตล์, ใช้การจัดรูปแบบตามเงื่อนไข, และบันทึกผลลัพธ์ในรูปแบบมาตรฐานอุตสาหกรรม. อย่าลืมกำหนดการพึ่งพา Maven ของคุณ, ใช้วัตถุเอกสารซ้ำ, และใช้สไตล์อย่างมีประสิทธิภาพเพื่อให้ได้ประสิทธิภาพสูงสุด. สำหรับการใช้งานในสภาพแวดล้อมการผลิตคุณจะต้องมีใบอนุญาตที่ถูกต้อง; รายละเอียดราคาอยู่ใน หน้าราคา และคุณสามารถรับใบอนุญาตชั่วคราวจาก หน้าลิขสิทธิ์ชั่วคราว. ขอให้สนุกกับการเขียนโค้ด!

คำถามที่คุณอาจมี

  • ฉันจะใช้ข้อความขีดฆ่าใน Java อย่างไรโดยไม่ต้องตั้งค่าสถานะด้วยตนเองสำหรับแต่ละ run?
    ใช้ DocumentBuilder.getFont().setStrikeThrough(true) ก่อนเขียนย่อหน้า สถานะจะคงอยู่จนกว่าจะรีเซ็ต ทำให้คุณสามารถเขียนหลายบรรทัดด้วยสไตล์เดียวกันได้

  • ฉันสามารถทำให้ทุกการปรากฏของคีย์เวิร์ดมีการขีดฆ่าโดยอัตโนมัติได้หรือไม่?
    ใช่. วนลูปผ่านแต่ละ Run ตามที่แสดงในขั้นตอนการทำงาน, ตรวจสอบ run.getText() สำหรับคีย์เวิร์ด, และเรียก run.getFont().setStrikeThrough(true) เมื่อพบการจับคู่.

  • รูปแบบเอกสารใดบ้างที่คงการขีดฆ่าเมื่อบันทึก?
    DOCX, DOC, RTF, และรูปแบบข้อความที่มีการจัดรูปแบบอื่น ๆ จะคงคุณลักษณะการขีดฆ่าไว้. ดูเอกสารอย่างเป็นทางการที่ official documentation สำหรับรายการเต็มของรูปแบบที่รองรับ.

  • การใช้สไตล์ขีดฆ่าจำนวนมากจะทำให้การประมวลผลไฟล์ขนาดใหญ่ช้าลงหรือไม่?
    ผลกระทบจะน้อยถ้าคุณปฏิบัติตามเคล็ดลับด้านประสิทธิภาพ: ใช้ตัวอย่าง Document ซ้ำ, ทำการเปลี่ยนแปลงสไตล์เป็นชุด, และหลีกเลี่ยงการเดินผ่านข้อมูลซ้ำซ้อน. วิธีนี้ช่วยลดการใช้หน่วยความจำและเร่งการประมวลผล.

บทความที่เกี่ยวข้อง