ในบทความหนึ่ง เราได้พูดถึง วิธีแก้ไขคำในเอกสารในฐานะนักพัฒนา .NET แล้ว กลยุทธ์นี้ใช้ในหลายวิธีเพื่อลบเนื้อหาที่ละเอียดอ่อน ซ่อนหรือลบข้อมูลส่วนตัว เช่น ที่อยู่อีเมลหรือหมายเลขประจำตัว บทความนี้กล่าวถึงวิธีการค้นหาคำในเอกสาร Word DOC/DOCX ในภาษาจาวา เราจะหารือเกี่ยวกับวิธีค้นหาและแทนที่ข้อความ คำ หรือวลีด้วยเทคนิคต่างๆ โดยใช้ Java API สำหรับการแก้ไข

หัวข้อต่อไปนี้จะครอบคลุมด้านล่าง:

Java API สำหรับการค้นหาคำและการแทนที่ข้อความ

GroupDocs มี Java redaction API ที่อนุญาตให้ค้นหาและแทนที่เนื้อหาของไฟล์ที่รองรับ MS Word และเอกสารอื่นๆ ในรูปแบบไฟล์อื่นๆ ที่หลากหลาย นอกเหนือจากการแสดงข้อความและการแรสเตอร์แล้ว API ยังสนับสนุนข้อมูลเมตา คำอธิบายประกอบ สเปรดชีต และคุณลักษณะการแสดงภาพด้วย รูปแบบไฟล์ที่รองรับ ของเอกสาร Word, สเปรดชีต, งานนำเสนอ, รูปภาพ และเอกสาร PDF มีอยู่ในเอกสารประกอบ

ดาวน์โหลดหรือกำหนดค่า

คุณสามารถดาวน์โหลดไฟล์ JAR ได้จาก ส่วนการดาวน์โหลด หรือเพียงรับที่เก็บและการกำหนดค่าการพึ่งพาล่าสุดสำหรับ pom.xml ของแอปพลิเคชัน Java ที่ใช้ maven

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-redaction</artifactId>
        <version>21.12</version> 
</dependency>

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

เอกสารเพื่อแก้ไขข้อความ

ค้นหาและแทนที่คำหรือวลีโดยใช้ Java

ขั้นตอนต่อไปนี้จะอธิบายวิธีการค้นหาและแทนที่คำ/วลีในเอกสาร Word ภายในแอปพลิเคชัน Java

  • โหลดไฟล์ DOC/DOCX โดยใช้คลาส Redactor
  • ค้นหาวลีหรือคำที่ตรงทั้งหมด โดยใช้คลาส ExactPhaseRedaction และ ReplacementOptions
  • ใช้วิธีการใช้ Redactor เพื่อใช้การทำซ้ำ
  • หากต้องการบันทึกไฟล์ในตำแหน่งอื่นหลังจากทำการเปลี่ยนแปลง ให้ใช้เอาต์พุตสตรีม
  • บันทึกการเปลี่ยนแปลงการแก้ไขโดยใช้วิธีบันทึก

รหัสต่อไปนี้ค้นหาและแทนที่คำว่า “John Doe” ในเอกสาร Word ด้านบนโดยใช้ Java โดยจะแทนที่คำว่า “John Doe” ทั้งหมดด้วยคำว่า “[censored]”

// ค้นหาวลีที่ตรงกันและแทนที่ด้วยข้อความอื่นโดยใช้ Java
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
// หากคุณต้องการบันทึกไฟล์ที่แก้ไขในตำแหน่งอื่นด้วยชื่อที่แตกต่างกัน
FileOutputStream stream = new FileOutputStream("path/exactPhrase.docx");
RasterizationOptions rasterOptions = new RasterizationOptions();
rasterOptions.setEnabled(false);
redactor.save(stream, rasterOptions);

ผลลัพธ์ของโค้ดจะเป็นดังนี้

ทำซ้ำโดยใช้วลีที่ตรงทั้งหมด

การค้นหาคำที่คำนึงถึงตัวพิมพ์เล็กและใหญ่และแทนที่ข้อความในภาษาจาวา

ดูเหมือนคุณระมัดระวังเกี่ยวกับอักษรตัวพิมพ์เล็กและใหญ่ของคำนั้น และต้องการแทนที่คำที่ตรงกับการค้นหาที่ตรงตามตัวพิมพ์เล็กและใหญ่เท่านั้น โค้ดต่อไปนี้แทนที่การมีอยู่ของคำว่า “John Doe” ที่ตรงกันทุกประการใน Java

// ค้นหาวลีที่ตรงทั้งหมด (คำนึงถึงตัวพิมพ์เล็กและใหญ่) และแทนที่ด้วยข้อความอื่นโดยใช้ Java
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
redactor.save();

ผลลัพธ์ของโค้ดจะเป็นดังนี้

การแก้ไขตัวพิมพ์เล็กและใหญ่

แทนที่ข้อความโดยใช้ Regular Expressions (RegEx) ใน Java

หากคุณไม่ต้องการเปลี่ยนคำที่ตรงทั้งหมดแต่มีรูปแบบบางอย่างอยู่ในเอกสารของคุณ คุณสามารถใช้นิพจน์ทั่วไปได้ ขั้นตอนต่อไปนี้ช่วยให้คุณค้นหาและแทนที่รูปแบบข้อความใดๆ โดยใช้นิพจน์ทั่วไป (RegEx) ภายในแอปพลิเคชัน Java ของคุณ

  • โหลดเอกสารโดยใช้คลาส Redactor
  • สร้าง RegEx โดยใช้ RegexRedaction
  • ระบุข้อความโดยใช้ ReplacementOptions เพื่อแทนที่การจับคู่ RegEx
  • ใช้วิธีสมัครแทนที่การแข่งขัน regex ทั้งหมด
  • ใช้วิธีบันทึกเพื่อรับเอกสารที่แก้ไขแล้ว

รหัสต่อไปนี้แสดงวิธีการค้นหาคำในไฟล์ Word โดยใช้ RegEx และแทนที่ด้วยข้อความอื่นโดยใช้ Java

// ค้นหาข้อความโดยใช้นิพจน์ทั่วไปและแทนที่ด้วยข้อความอื่นโดยใช้ Java
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
redactor.save();

ต่อไปนี้เป็นผลลัพธ์ของโค้ดด้านบน:

การแก้ไข RegEx

แทนที่ข้อความด้วยกล่องสีใน Java

หากคุณไม่ต้องการแทนที่เนื้อหาของคุณและต้องการซ่อนไว้เฉยๆ API จะอนุญาตให้คุณครอบคลุมข้อความที่ตรงกันโดยการวาดกล่องทับ รหัส Java ต่อไปนี้ซ่อนข้อความด้วยกล่องสี่เหลี่ยมผืนผ้าสีดำ

// ค้นหาข้อความและซ่อนโดยวาดสี่เหลี่ยมทับโดยใช้ Java
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true, new ReplacementOptions(java.awt.Color.BLACK)));
redactor.save();

ผลลัพธ์ของโค้ดด้านบนเป็นดังนี้

ซ่อนข้อความโดยใช้กล่อง

รับใบอนุญาต API ฟรี

คุณสามารถ รับใบอนุญาตชั่วคราวได้ฟรี เพื่อใช้ API โดยไม่มีข้อจำกัดในการประเมิน

บทสรุป

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

สำหรับรายละเอียดเพิ่มเติมและการเรียนรู้เกี่ยวกับ API โปรดไปที่ เอกสารประกอบ สำหรับข้อสงสัย ติดต่อเราผ่านทาง ฟอรัม

ดูสิ่งนี้ด้วย