Çeşitli durumlarda, PDF belgelerinde belirli bir metin parçasını bulmanız ve değiştirmeniz gerekebilir. Ancak, her oluşumu manuel olarak aramak ve güncellemek size fazladan zaman ve çabaya mal olabilir. Bu gibi durumlarda bul ve değiştir seçeneği hayatınızı kolaylaştırır. Bu makalede, Java kullanarak PDF belgelerinde metin bulmayı ve değiştirmeyi öğreneceksiniz.
- PDF’de Metin Bulmak ve Değiştirmek için Java API
- Java kullanarak PDF’de Metin Bul ve Değiştir
- PDF’de Belirli Bir Sayfadaki Metni Değiştirme
- Normal İfade Kullanarak Metni Değiştirme
PDF’de Metni Bulmak ve Değiştirmek için Java API - Ücretsiz İndirme
Aspose.PDF for Java, Java uygulamalarının içinden PDF dosyaları oluşturmak ve değiştirmek için tasarlanmıştır. API, metin bulma ve değiştirme dahil olmak üzere çok çeşitli temel ve gelişmiş PDF işleme özellikleri sağlar. API’yi indirebilir veya aşağıdaki Maven yapılandırmalarını kullanarak yükleyebilirsiniz.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>21.1</version>
</dependency>
Java kullanarak PDF’de Metin Bul ve Değiştir
PDF’deki belirli bir metni değiştirmek için önce arama dizesiyle eşleşen tüm metin parçalarını alırsınız. Onlara sahip olduğunuzda, her bir parçayı güncellenmiş metinle birer birer değiştirmeniz yeterlidir.
Java kullanarak bir PDF dosyasındaki metni bulma ve değiştirme adımları aşağıda verilmiştir.
- Belge sınıfını kullanarak PDF dosyasını yükleyin.
- TextFragmentAbsorber sınıfından bir nesne oluşturun ve onu bulup değiştirmek istediğiniz metinle başlatın.
- Document.getPages().accept(TextFragmentAbsorber) yöntemini kullanarak PDF’deki sayfalar için emiciyi kabul edin.
- TextFragmentAbsorber.getTextFragments() tarafından döndürülen metnin tüm oluşumlarını bir TextFragmentCollection nesnesine alın.
- TextFragmentCollection nesnesindeki her TextFragment içinde dolaşın ve TextFragment.setText(String) yöntemini kullanarak metni değiştirin.
- Güncellenmiş PDF dosyasını Document.save(String) yöntemini kullanarak kaydedin.
Aşağıdaki kod örneği, PDF’de metnin nasıl bulunacağını ve değiştirileceğini gösterir.
// Eksiksiz örnekler ve veri dosyaları için lütfen https://github.com/aspose-pdf/Aspose.Pdf-for-Java adresine gidin.
// Belgeyi aç
Document pdfDocument = new Document("source.pdf");
// Giriş arama ifadesinin tüm örneklerini bulmak için TextAbsorber nesnesi oluşturun
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");
// Belgenin tüm sayfaları için emiciyi kabul edin
pdfDocument.getPages().accept(textFragmentAbsorber);
// Ayıklanan metin parçalarını koleksiyona alın
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();
// Parçalar arasında döngü
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
// Metni ve diğer özellikleri güncelleyin
textFragment.setText("New Pharase");
textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
textFragment.getTextState().setFontSize(22);
textFragment.getTextState().setForegroundColor(Color.getBlue());
textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// Güncellenmiş PDF dosyasını kaydedin
pdfDocument.save("Updated_Text.pdf");
PDF’de Belirli Bir Sayfadaki Metni Arayın ve Değiştirin
Tüm PDF’de metin bulmak ve değiştirmek yerine, metin oluşumlarını değiştirmek istediğiniz tek bir sayfa belirtebilirsiniz. Bu durumda, yalnızca sayfa dizinini belirterek belirli bir sayfa için TextFragmentAbsorber kabul edeceksiniz.
Java’da PDF’de belirli bir sayfadaki metni aramak ve değiştirmek için izlenecek adımlar aşağıdadır.
- Belge sınıfını kullanarak PDF dosyasını yükleyin.
- TextFragmentAbsorber sınıfından bir nesne oluşturun ve onu bulup değiştirmek istediğiniz metinle başlatın.
- Document.getPages().getItem(Int pageIndex).accept(TextFragmentAbsorber) yöntemini kullanarak PDF’deki belirli bir sayfa için emiciyi kabul edin.
- TextFragmentAbsorber.getTextFragments() tarafından döndürülen metnin tüm oluşumlarını TextFragmentCollection nesnesine alın.
- TextFragmentCollection nesnesindeki her TextFragment içinde dolaşın ve TextFragment.setText(String) yöntemini kullanarak metni değiştirin.
- Güncellenmiş PDF dosyasını Document.save(String) yöntemini kullanarak kaydedin.
Aşağıdaki kod örneği, Java kullanılarak PDF’de belirli bir sayfadaki metnin nasıl bulunacağını ve değiştirileceğini gösterir.
// Eksiksiz örnekler ve veri dosyaları için lütfen https://github.com/aspose-pdf/Aspose.Pdf-for-Java adresine gidin.
// Belgeyi aç
Document pdfDocument = new Document("source.pdf");
// Giriş arama ifadesinin tüm örneklerini bulmak için TextAbsorber nesnesi oluşturun
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");
// Belgenin ilk sayfası için emiciyi kabul edin
pdfDocument.getPages().get_Item(0).accept(textFragmentAbsorber);
// Ayıklanan metin parçalarını koleksiyona alın
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();
// Parçalar arasında döngü
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
// Metni ve diğer özellikleri güncelleyin
textFragment.setText("New Pharase");
textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
textFragment.getTextState().setFontSize(22);
textFragment.getTextState().setForegroundColor(Color.getBlue());
textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// Güncellenmiş PDF dosyasını kaydedin
pdfDocument.save("Updated_Text.pdf");
PDF’de Normal İfadeleri Kullanarak Metni Bul ve Değiştir
E-postalar, SSN’ler vb. gibi belirli bir kalıpla eşleşen metni aramak için bir normal ifade de belirtebilirsiniz. Aşağıda, Java kullanarak PDF’de metin aramak ve değiştirmek için bir normal ifade tanımlama ve kullanma adımları yer almaktadır.
- Belge sınıfını kullanarak PDF dosyasını yükleyin.
- TextFragmentAbsorber sınıfından bir nesne oluşturun ve onu kullanmak istediğiniz normal ifadeyle başlatın.
- TextSearchOptions sınıfından bir nesne oluşturun ve normal ifade tabanlı aramayı etkinleştirmek için onu true ile başlatın.
- TextFragmentAbsorber.setTextSearchOptions(TextSearchOptions) yöntemini kullanarak seçenekleri ayarlayın.
- Document.getPages().accept(TextFragmentAbsorber) yöntemini kullanarak PDF’deki sayfalar için emiciyi kabul edin.
- TextFragmentAbsorber.getTextFragments() tarafından TextFragmentCollection nesnesine döndürülen metnin bulunan tüm oluşumlarını alın.
- TextFragmentCollection nesnesindeki her TextFragment içinde dolaşın ve TextFragment.setText(String) yöntemini kullanarak metni değiştirin.
- Güncellenmiş PDF dosyasını Document.save(String) yöntemini kullanarak kaydedin.
Aşağıdaki kod örneği, normal ifade kullanılarak PDF’de metnin nasıl bulunacağını ve değiştirileceğini gösterir.
// Eksiksiz örnekler ve veri dosyaları için lütfen https://github.com/aspose-pdf/Aspose.Pdf-for-Java adresine gidin.
// Belgeyi aç
Document pdfDocument = new Document("input.pdf");
// Giriş arama ifadesinin tüm örneklerini bulmak için TextAbsorber nesnesi oluşturun
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // like 1999-2000
// Normal ifade kullanımını etkinleştirmek için metin arama seçeneğini ayarlayın
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.setTextSearchOptions(textSearchOptions);
// Belgenin tüm sayfaları için emiciyi kabul edin
pdfDocument.getPages().accept(textFragmentAbsorber);
// Ayıklanan metin parçalarını koleksiyona alın
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();
// Parçalar arasında döngü
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
// Metni ve diğer özellikleri güncelleyin
textFragment.setText("New Pharase");
textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
textFragment.getTextState().setFontSize(22);
textFragment.getTextState().setForegroundColor(Color.getBlue());
textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// Güncellenmiş PDF dosyasını kaydedin
pdfDocument.save("Updated_Text.pdf");
Ücretsiz API Lisansı Alın
API’yi değerlendirme kısıtlamaları olmadan ücretsiz olarak deneyebilirsiniz. Şimdi ücretsiz bir geçici lisans alın.
Çözüm
Bu makalede, Java kullanarak PDF’de metin bulmayı ve değiştirmeyi öğrendiniz. Ayrıca, belirli bir kalıbı izleyen metni aramak ve değiştirmek için bir normal ifadeyi nasıl kullanacağınızı gördünüz. Belgeleri kullanarak Java PDF API hakkında daha fazlasını keşfedebilirsiniz.