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
- Kelimeleri veya Deyimleri Bul ve Değiştir
- Büyük/Küçük Harfe Duyarlı Sözcük Arama ve Metin Değiştirme
- Normal İfadeler Kullanarak Metni Değiştirme (RegEx)
- Metni Renkli Kutuyla Değiştirin
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.

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.

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.

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:

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.

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