Makalelerden birinde, bir .NET geliştiricisi olarak belgelerdeki sözcüklerin nasıl düzeltileceğini zaten tartışmıştık. Strateji, hassas içeriği silmek, e-posta adresleri veya kimlik numaraları gibi özel bilgileri gizlemek veya kaldırmak için birçok şekilde kullanılır. Bu makalede, Java’da Word DOC/DOCX belgelerinde sözcük aramanın nasıl yapılacağı anlatılmaktadır. Redaksiyon için Java API kullanarak metni, sözcükleri veya tümceleri farklı tekniklerle nasıl bulacağımızı ve değiştireceğimizi ayrıca tartışacağız.

Aşağıdaki konular aşağıda ele alınacaktır:

Kelime Arama ve Metin Değiştirme için Java API

GroupDocs, MS Word destekli dosyaların ve diğer çeşitli dosya biçimlerindeki diğer belgelerin içeriğini bulmaya ve değiştirmeye izin veren bir Java redaksiyon API’sı sağlar. Metin redaksiyonu ve rasterleştirmeye ek olarak API, meta verileri, ek açıklamayı, elektronik tabloyu ve ayrıca görüntü redaksiyon özelliklerini destekler. Word belgelerinin, elektronik tabloların, sunumların, resimlerin ve PDF belgelerinin desteklenen dosya biçimleri belgelerde mevcuttur.

İndirin veya Yapılandırın

JAR dosyasını indirilenler bölümünden indirebilir veya maven tabanlı Java uygulamalarınızın pom.xml dosyası için en son depo ve bağımlılık yapılandırmalarını edinebilirsiniz.

<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>

Redaksiyon işlemi için MS Word veya başka bir üçüncü taraf yazılımı gerekli değildir. Şimdi arama ve metin değiştirme ile başa çıkmak için farklı yaklaşımlarla başlayalım. Aşağıdaki örneklerde kullanılan bir Word belgesinin ekran görüntüsü aşağıdadır. Aynı yöntemleri kaynak kodunda çok az değişiklik yaparak veya hiç değişiklik yapmadan diğer belge formatları için de kullanabilirsiniz.

Metni yeniden düzenlemek için belge

Java kullanarak Kelimeleri veya Deyimleri Bul ve Değiştir

Aşağıdaki adımlarda, Java uygulamasında bir Word belgesinde bir sözcüğün/ifadenin geçtiği yerlerin nasıl bulunacağı ve değiştirileceği açıklanmaktadır.

  • Redactor sınıfını kullanarak DOC/DOCX dosyasını yükleyin.
  • ExactPhraseRedaction ve ReplacementOptions sınıflarını kullanarak tam ifadeyi veya kelimeyi bulun.
  • Redaksiyonu uygulamak için Redaktör’ün uygulama yöntemini kullanın.
  • Değişiklik yaptıktan sonra dosyayı farklı bir konuma kaydetmek için çıkış akışını kullanın.
  • Redaksiyon değişikliklerini kaydetme yöntemini kullanarak kaydedin.

Aşağıdaki kod Java kullanarak yukarıdaki Word belgesindeki “John Doe” kelimesini bulur ve değiştirir. Tüm “John Doe” oluşumlarını “[sansürlü]” kelimesiyle değiştirir.

// Tam ifadeyi bulun ve Java kullanarak başka bir metinle değiştirin
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
// Düzenlenen dosyayı farklı bir adla farklı bir konuma kaydetmek istiyorsanız.
FileOutputStream stream = new FileOutputStream("path/exactPhrase.docx");
RasterizationOptions rasterOptions = new RasterizationOptions();
rasterOptions.setEnabled(false);
redactor.save(stream, rasterOptions);

Kodun çıktısı aşağıdaki gibidir.

Exact Phrase kullanarak düzeltme yapın

Java’da Büyük/Küçük Harfe Duyarlı Kelime Arama ve Metin Değiştirme

Kelimenin tam harf durumu konusunda temkinli görünüyorsunuz ve yalnızca büyük/küçük harfe duyarlı aramanızla eşleşen kelimeyi değiştirmek istiyorsunuz. Aşağıdaki kod, Java’daki “John Doe” kelimesinin tam durum eşleşmesinin varlığını değiştirir.

// Tam ifadeyi bulun (büyük/küçük harfe duyarlı) ve Java kullanarak başka bir metinle değiştirin
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
redactor.save();

Kodun çıktısı aşağıdaki gibidir.

Büyük/küçük harfe duyarlı redaksiyon

Java’da Normal İfadeler (RegEx) Kullanarak Metni Değiştirin

Tam kelimeyi değil, belgenizde bulunan bazı kalıpları değiştirmek istiyorsanız Normal ifadeleri kullanabilirsiniz. Aşağıdaki adımlar, Java uygulamalarınızda normal ifadeler (RegEx) kullanarak herhangi bir metin kalıbını bulmanızı ve değiştirmenizi sağlar.

  • Redactor sınıfını kullanarak belgeyi yükleyin.
  • RegexRedaction kullanarak RegEx’i oluşturun.
  • RegEx eşleşmesini değiştirmek için ReplacementOptions kullanarak metni sağlayın.
  • Apply yöntemini kullanın, tüm regex eşleşmelerini değiştirin.
  • Düzenlenen belgeyi almak için kaydetme yöntemini kullanın.

Aşağıdaki kod, RegEx kullanılarak bir Word dosyasında kelime aramanın nasıl gerçekleştirileceğini ve Java kullanılarak başka bir metinle nasıl değiştirileceğini gösterir.

// Normal ifadeyi kullanarak metni bulun ve Java kullanarak başka bir metinle değiştirin
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();

Yukarıdaki kodun çıktısı aşağıdadır:

Normal İfade Redaksiyonu

Metni Java’da Renkli Kutuyla Değiştirin

İçeriğinizi değiştirmek istemiyor ve sadece gizlemek istiyorsanız, API, üzerine bir kutu çizerek metin eşleşmesine izin verir. Aşağıdaki Java kodu, siyah dikdörtgen kutulu metni gizler.

// Metni bulun ve Java kullanarak üzerine dikdörtgen çizerek gizleyin
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true, new ReplacementOptions(java.awt.Color.BLACK)));
redactor.save();

Yukarıdaki kodun çıktısı aşağıdaki gibidir.

Box'ı Kullanarak Metni Gizle

Ücretsiz API Lisansı Alın

API’yi değerlendirme sınırlamaları olmadan kullanmak için ücretsiz bir geçici lisans alabilirsiniz.

Çözüm

Özetlemek gerekirse, Word belgelerinde metin bulmak için tam metin öbeği araması, büyük/küçük harfe duyarlı arama, normal ifadeler kullanarak arama ve son olarak metni değiştirmek yerine gizlemeyi kullanarak sözcük aramayı nasıl yapacağınızı öğrendiniz. Bulguları MS Word belgeleri içinde farklı şekillerde değiştirmek için bu farklı teknikleri kullanabilirsiniz.

Daha fazla ayrıntı ve API hakkında bilgi edinmek için belgeleri ziyaret edin. Sorularınız için forum aracılığıyla bize ulaşın.

Ayrıca bakınız