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

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

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

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

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

คุณสามารถดาวน์โหลดไฟล์ 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>

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

ค้นหาและแทนที่คำหรือวลีใน PDF ใน Java

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

  • โหลดไฟล์ PDF โดยใช้คลาส Redactor
  • ค้นหาวลีหรือคำที่ตรงทั้งหมด โดยใช้ ExactPhaseRedaction และ [ReplacementOptions](https://apireference.groupdocs com/redaction/java/com.groupdocs.redaction.redactions/ReplacementOptions)
  • ใช้การแก้ไขโดยใช้วิธีการสมัคร()
  • บันทึกเอกสารใหม่พร้อมการเปลี่ยนแปลงโดยใช้เมธอด save()

รหัสต่อไปนี้ค้นหาและแทนที่คำในไฟล์ PDF โดยใช้ Java แม่นยำยิ่งขึ้น มันซ่อนเหตุการณ์ทั้งหมดของ “John Doe” โดยแทนที่ด้วยคำว่า “[censored]”

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

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

ค้นหาและแทนที่ข้อความหรือวลีที่ตรงตามตัวพิมพ์เล็กและใหญ่ใน PDF โดยใช้ Java

คุณสามารถค้นหาและแก้ไขตามตัวพิมพ์เล็กและใหญ่ได้ โค้ดต่อไปนี้จะแทนที่คำว่า “John Doe” ที่คำนึงถึงตัวพิมพ์เล็กและใหญ่ แต่ไม่ใช่ “john doe” ภายในเอกสาร PDF โดยใช้ Java

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

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

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

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

  • โหลดเอกสาร PDF โดยใช้คลาส Redactor
  • ค้นหาการจับคู่ regex โดยใช้คลาส RegexRedaction ที่มี [ReplacementOptions](https://apireference.groupdocs.com/ redaction/java/com.groupdocs.redaction.redactions/ReplacementOptions)
  • นำไปใช้ในการเปลี่ยนแปลงเอกสารโดยใช้วิธีการ apply()
  • บันทึกเอกสารที่แก้ไขแล้วโดยใช้เมธอด save() ที่เหมาะสม

โค้ด Java ต่อไปนี้แสดงวิธีค้นหารูปแบบข้อความในเอกสาร PDF โดยใช้ RegEx และแทนที่/ซ่อนด้วยข้อความอื่นในภายหลัง

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

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

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

หากคุณต้องการซ่อนข้อมูลที่เป็นความลับที่ค้นหาภายในไฟล์ PDF ของคุณ คุณก็เพียงแค่ใส่หน้าปกลงไป API อนุญาตให้คุณซ่อนข้อความที่ค้นหา รหัสต่อไปนี้วางสี่เหลี่ยมผืนผ้าสีดำเหนือข้อความส่วนตัวที่กล่าวถึงใน Java

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

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

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

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

บทสรุป

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

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

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