การจัดรูปแบบขีดทับมักจำเป็นเพื่อระบุการลบ การแก้ไข หรือภารกิจที่เสร็จสมบูรณ์ในเอกสารที่สร้างขึ้น 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 เพื่อหลีกเลี่ยงการตั้งค่าคุณสมบัติซ้ำ ๆ.
ข้อควรพิจารณาด้านประสิทธิภาพสำหรับการเรนเดอร์เส้นขีด
- Reuse the
Documentobject - โหลดเอกสารเพียงครั้งเดียวและทำการแก้ไขทั้งหมดในเซสชันเดียวจะลดภาระ I/O. - Batch style changes - ใช้แฟล็ก strike‑through กับคอลเลกชัน
ParagraphหรือRunแทนการสลับสำหรับแต่ละอักขระ. - Avoid unnecessary traversals - ลูปเงื่อนไขที่ค้นหาคำว่า “strike” ควรทำงานเฉพาะเมื่อคุณต้องการสไตล์แบบไดนามิกจริงๆ.
- 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ซ้ำ, ทำการเปลี่ยนแปลงสไตล์เป็นชุด, และหลีกเลี่ยงการเดินผ่านข้อมูลซ้ำซ้อน. วิธีนี้ช่วยลดการใช้หน่วยความจำและเร่งการประมวลผล.
