Şablonlar, şablon anahtarlarını ilgili değerlerle değiştirerek kişiselleştirilmiş belgeler oluşturmak için yaygın olarak kullanılır. Bu makale, Java’da PDF belgelerinde metin ve sözcüklerin nasıl bulunacağı ve değiştirileceği konusunda rehberlik eder. Sözcük ve deyim arama, büyük/küçük harfe duyarlı sözcük arama, bulunan metni normal ifadeler kullanarak değiştirme gibi işlemleri ayrı ayrı ele alacağız. Son olarak, Java kullanarak metnin aranan kısmını nasıl gizleyeceğimizi öğreneceğiz.

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

Metni Değiştirmek için Java Redaksiyon API’si

GroupDocs, çeşitli redaksiyon türlerini uygulamak için Java API sağlar. Uygulama içindeki belgelerin, sunumların, elektronik tabloların, PDF dosyalarının ve görüntülerin içeriğini ve hatta meta verilerini düzeltmeye, gizlemeye veya kaldırmaya olanak tanır. API hakkında daha fazla ayrıntı için belgelerini ziyaret edin.

İ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’si 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>

İyi yanlarından biri, PDF redaksiyonu için herhangi bir PDF düzenleyici veya başka herhangi bir üçüncü taraf yazılımı yüklemeye gerek olmamasıdır. Aşağıdaki örneklerde redaksiyon için kullanılan PDF belgesinin içeriği aşağıdadır. Aynı yaklaşım, kaynak kodunda neredeyse hiç fark olmaksızın diğer belge biçimleri için de çalışacaktır.

Java’da PDF’de Kelime veya Deyim Bul ve Değiştir

Bu özelliği, herhangi bir özel veriyi gizlemek ve ayrıca herhangi bir şablondan yeni bir özelleştirilmiş belge oluşturmak için kullanabilirsiniz. Aşağıdaki adım, bir PDF belgesinde herhangi bir kelimenin/ifadenin nasıl bulunacağını ve Java uygulamasında başka bir metinle nasıl değiştirileceğini açıklar.

  • Redactor sınıfını kullanarak PDF dosyasını yükleyin.
  • ExactPhraseRedaction ve ReplacementOptions kullanarak tam ifadeyi veya kelimeyi bulun. com/redaction/java/com.groupdocs.redaction.redactions/ReplacementOptions).
  • Apply() yöntemini kullanarak redaksiyonu uygulayın.
  • Yeni belgeyi save() yöntemini kullanarak değişikliklerle kaydedin.

Aşağıdaki kod, Java kullanarak bir PDF dosyasındaki sözcükleri bulur ve değiştirir. Daha doğrusu, “John Doe"nun tüm oluşumlarını “[sansürlü]” kelimesiyle değiştirerek gizler.

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

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

Java kullanarak PDF’de Büyük/Küçük Harfe Duyarlı Metin veya Tümcecik Bulma ve Değiştirme

Büyük/küçük harfe duyarlı arama ve düzenleme yapabilirsiniz. Aşağıdaki kod, Java kullanan bir PDF belgesinde “John Doe” kelimesinin büyük/küçük harfe duyarlı oluşumunu değiştirir, ancak “john doe” kelimesini değiştirmez.

// PDF'de 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.pdf");
redactor.apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
redactor.save();

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

PDF’deki Metni Java’da Normal İfadelerle (RegEx) Değiştirin

Benzer şekilde, normal ifadeleri kullanarak belirli bir metin kalıbını değiştirebilirsiniz. Aşağıdaki adımlar, Java uygulamalarınızda normal ifade (RegEx) kullanarak arama yaptıktan sonra PDF’yi yeniden düzenlemenize olanak tanır.

  • Redactor sınıfını kullanarak PDF belgesini yükleyin.
  • ReplacementOptions ile RegexRedaction sınıfını kullanarak normal ifade eşleşmesini bulun redaksiyon/java/com.groupdocs.redaction.redactions/ReplacementOptions).
  • Apply() yöntemini kullanarak belgedeki değişiklikleri uygulayın.
  • Düzenlenen belgeyi uygun save() yöntemini kullanarak kaydedin.

Aşağıdaki Java kodu, RegEx kullanılarak bir PDF belgesinde belirli bir metin kalıbının nasıl bulunacağını ve daha sonra başka bir metinle nasıl değiştirileceğini/gizleneceğini gösterir.

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

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

Metni Java’da Renkli Kutuyla Değiştirin

Aranan gizli bilgileri PDF dosyanızda gizlemek istiyorsanız, üzerine bir kapak koyabilirsiniz. API, aranan metni gizlemenizi sağlar. Aşağıdaki kod, siyah dikdörtgeni Java’da belirtilen özel metnin üzerine yerleştirir.

// PDF'de metin bulun ve Java kullanarak üzerine dikdörtgen çizerek gizleyin
final Redactor redactor  = new Redactor("path/document.pdf");
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

Özetle, farklı arama teknikleri kullanarak PDF dosyalarındaki belirli metinleri nasıl bulacağımızı öğrendik. Daha sonra Java’daki uygulamalar içindeki metni değiştirerek veya gizleyerek PDF dosyalarını yeniden düzenledik. Daha doğrusu, Java’da RegEx kullanarak, büyük/küçük harf duyarlılığı ile aranan kelimeler, deyimler için basit bir arama gerçekleştirdik. Son olarak, arama sonuçlarını başka bir metinle veya basitçe üzerine renk koyarak gizleyerek değiştirdik.

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

Ayrıca bakınız