Java için Aspose.Words'de Metin Bulma ve Değiştirme
Java için Aspose.Words’de Metin Bulma ve Değiştirmeye Giriş
Aspose.Words for Java, Word belgeleriyle programatik olarak çalışmanıza olanak tanıyan güçlü bir Java API’sidir. Word belgeleriyle uğraşırken sık karşılaşılan görevlerden biri metni bulmak ve değiştirmektir. Şablonlardaki yer tutucuları güncellemeniz veya daha karmaşık metin düzenlemeleri yapmanız gerekip gerekmediğine bakılmaksızın, Aspose.Words for Java hedeflerinize verimli bir şekilde ulaşmanıza yardımcı olabilir.
Ön koşullar
Metin bulma ve değiştirme ayrıntılarına dalmadan önce, aşağıdaki ön koşulların mevcut olduğundan emin olun:
- Java Geliştirme Ortamı
- Java için Aspose.Words kütüphanesi
- Üzerinde çalışılacak bir örnek Word belgesi
Aspose.Words for Java kütüphanesini şu adresten indirebilirsiniz:Burada.
Basit Metni Bulma ve Değiştirme
// Belgeyi yükle
Document doc = new Document("your-document.docx");
// Bir DocumentBuilder Oluşturun
DocumentBuilder builder = new DocumentBuilder(doc);
// Metni bul ve değiştir
builder.getRange().replace("old-text", "new-text", new FindReplaceOptions());
// Değiştirilen belgeyi kaydet
doc.save("modified-document.docx");
Bu örnekte bir Word belgesi yüklüyoruz, birDocumentBuilder
ve şunu kullanınreplace
Belge içerisinde “eski-metin"i “yeni-metin” ile bulup değiştirme yöntemi.
Düzenli İfadeleri Kullanma
Düzenli ifadeler, metin arama ve değiştirme için güçlü desen eşleştirme yetenekleri sağlar. Aspose.Words for Java, daha gelişmiş bulma ve değiştirme işlemleri için düzenli ifadeleri destekler.
// Belgeyi yükle
Document doc = new Document("your-document.docx");
// Bir DocumentBuilder Oluşturun
DocumentBuilder builder = new DocumentBuilder(doc);
// Metin bulmak ve değiştirmek için düzenli ifadeleri kullanın
Pattern regex = Pattern.compile("your-pattern");
builder.getRange().replace(regex, "replacement-text", new FindReplaceOptions());
// Değiştirilen belgeyi kaydet
doc.save("modified-document.docx");
Bu örnekte, belgedeki metni bulmak ve değiştirmek için düzenli ifade desenini kullanıyoruz.
Alanların İçindeki Metni Yoksayma
Aspose.Words’ü, bulma ve değiştirme işlemlerini gerçekleştirirken alanlar içindeki metni yoksayacak şekilde yapılandırabilirsiniz.
// Belgeyi yükle
Document doc = new Document("your-document.docx");
// Bir FindReplaceOptions örneği oluşturun ve IgnoreFields'ı true olarak ayarlayın
FindReplaceOptions options = new FindReplaceOptions();
options.setIgnoreFields(true);
// Metni değiştirirken seçenekleri kullanın
doc.getRange().replace("text-to-replace", "new-text", options);
// Değiştirilen belgeyi kaydet
doc.save("modified-document.docx");
Bu, birleştirme alanları gibi alanların içindeki metnin değiştirilmesini engellemek istediğinizde yararlıdır.
İçindeki Metni Yoksayma Revizyonları Sil
Aspose.Words’ü, bulma ve değiştirme işlemleri sırasında silme revizyonlarının içindeki metni yoksayacak şekilde yapılandırabilirsiniz.
// Belgeyi yükle
Document doc = new Document("your-document.docx");
// Bir FindReplaceOptions örneği oluşturun ve IgnoreDeleted değerini true olarak ayarlayın
FindReplaceOptions options = new FindReplaceOptions();
options.setIgnoreDeleted(true);
// Metni değiştirirken seçenekleri kullanın
doc.getRange().replace("text-to-replace", "new-text", options);
// Değiştirilen belgeyi kaydet
doc.save("modified-document.docx");
Bu, izlenen değişikliklerde silinmek üzere işaretlenen metnin değiştirilmesini engellemenize olanak tanır.
Ekleme Revizyonları İçindeki Metni Yoksayma
Aspose.Words’ü, bulma ve değiştirme işlemleri sırasında ekleme revizyonlarının içindeki metni yok sayacak şekilde yapılandırabilirsiniz.
// Belgeyi yükle
Document doc = new Document("your-document.docx");
// Bir FindReplaceOptions örneği oluşturun ve IgnoreInserted değerini true olarak ayarlayın
FindReplaceOptions options = new FindReplaceOptions();
options.setIgnoreInserted(true);
// Metni değiştirirken seçenekleri kullanın
doc.getRange().replace("text-to-replace", "new-text", options);
// Değiştirilen belgeyi kaydet
doc.save("modified-document.docx");
Bu, izlenen değişikliklerde eklenmiş olarak işaretlenen metnin değiştirilmesini engellemenize olanak tanır.
Metni HTML ile Değiştirme
Metni HTML içeriğiyle değiştirmek için Aspose.Words for Java’yı kullanabilirsiniz.
// Belgeyi yükle
Document doc = new Document("your-document.docx");
// Özel bir değiştirme geri aramasıyla bir FindReplaceOptions örneği oluşturun
FindReplaceOptions options = new FindReplaceOptions();
options.setReplacingCallback(new ReplaceWithHtmlEvaluator(options));
// Metni değiştirirken seçenekleri kullanın
doc.getRange().replace("text-to-replace", "new-html-content", options);
// Değiştirilen belgeyi kaydet
doc.save("modified-document.docx");
Bu örnekte özel birReplaceWithHtmlEvaluator
metni HTML içeriğiyle değiştirmek.
Başlıklar ve Altbilgilerdeki Metni Değiştirme
Word belgenizin üstbilgi ve altbilgilerindeki metinleri bulabilir ve değiştirebilirsiniz.
// Belgeyi yükle
Document doc = new Document("your-document.docx");
// Başlık ve altbilgi koleksiyonunu edinin
HeaderFooterCollection headersFooters = doc.getFirstSection().getHeadersFooters();
// Metnini değiştirmek istediğiniz üstbilgi veya altbilgi türünü seçin (örneğin, HeaderFooterType.FOOTER_PRIMARY)
HeaderFooter footer = headersFooters.getByHeaderFooterType(HeaderFooterType.FOOTER_PRIMARY);
// Bir FindReplaceOptions örneği oluşturun ve bunu altbilgi aralığına uygulayın
FindReplaceOptions options = new FindReplaceOptions();
footer.getRange().replace("text-to-replace", "new-text", options);
// Değiştirilen belgeyi kaydet
doc.save("modified-document.docx");
Bu, özellikle başlık ve altbilgilerde metin değiştirmeleri yapmanıza olanak tanır.
Üstbilgi ve Altbilgi Siparişleri için Değişiklikler Gösteriliyor
Belgenizdeki üstbilgi ve altbilgi sıralarındaki değişiklikleri göstermek için Aspose.Words’ü kullanabilirsiniz.
// Belgeyi yükle
Document doc = new Document("your-document.docx");
// İlk bölümü al
Section firstPageSection = doc.getFirstSection();
//Bir FindReplaceOptions örneği oluşturun ve bunu belgenin aralığına uygulayın
FindReplaceOptions options = new FindReplaceOptions();
options.setReplacingCallback(new ReplaceLog());
// Başlık ve altbilgi sıralarını etkileyen metni değiştirin
doc.getRange().replace(Pattern.compile("(header|footer)"), "", options);
// Değiştirilen belgeyi kaydet
doc.save("modified-document.docx");
Bu, belgenizdeki üstbilgi ve altbilgi siparişleriyle ilgili değişiklikleri görselleştirmenizi sağlar.
Metni Alanlarla Değiştirme
Aspose.Words for Java’yı kullanarak metni alanlarla değiştirebilirsiniz.
// Belgeyi yükle
Document doc = new Document("your-document.docx");
// Bir FindReplaceOptions örneği oluşturun ve alanlar için özel bir değiştirme geri araması ayarlayın
FindReplaceOptions options = new FindReplaceOptions();
options.setReplacingCallback(new ReplaceTextWithFieldHandler(FieldType.FIELD_MERGE_FIELD));
// Metni değiştirirken seçenekleri kullanın
doc.getRange().replace(Pattern.compile("PlaceHolder(\\d+)"), "", options);
// Değiştirilen belgeyi kaydet
doc.save("modified-document.docx");
Bu örnekte metni alanlarla değiştiriyoruz ve alan türünü belirtiyoruz (örneğin,FieldType.FIELD_MERGE_FIELD
).
Değerlendirici ile Değiştirme
Değiştirme metnini dinamik olarak belirlemek için özel bir değerlendirici kullanabilirsiniz.
// Belgeyi yükle
Document doc = new Document("your-document.docx");
// Bir FindReplaceOptions örneği oluşturun ve özel bir değiştirme geri araması ayarlayın
FindReplaceOptions options = new FindReplaceOptions();
options.setReplacingCallback(new MyReplaceEvaluator());
// Metni değiştirirken seçenekleri kullanın
doc.getRange().replace(Pattern.compile("[s|m]ad"), "", options);
// Değiştirilen belgeyi kaydet
doc.save("modified-document.docx");
Bu örnekte özel bir değerlendirici kullanıyoruz (MyReplaceEvaluator
) metni değiştirmek için.
Regex ile değiştirme
Java için Aspose.Words, metni düzenli ifadeler kullanarak değiştirmenize olanak tanır.
// Belgeyi yükle
Document doc = new Document("your-document.docx");
// Metin bulmak ve değiştirmek için düzenli ifadeleri kullanın
doc.getRange().replace(Pattern.compile("[s|m]ad"), "bad", new FindReplaceOptions());
// Değiştirilen belgeyi kaydet
doc.save("modified-document.docx");
Bu örnekte, belgedeki metni bulmak ve değiştirmek için düzenli ifade desenini kullanıyoruz.
Değiştirme Modelleri İçinde Tanıma ve Değiştirmeler
Aspose.Words for Java’yı kullanarak değiştirme desenleri içinde değiştirmeler yapabilir ve tanıyabilirsiniz.
// Belgeyi yükle
Document doc = new Document("your-document.docx");
// UseSubstitutions'ı true olarak ayarlayan bir FindReplaceOptions örneği oluşturun
FindReplaceOptions options = new FindReplaceOptions();
options.setUseSubstitutions(true);
// Metni bir desenle değiştirirken seçenekleri kullanın
doc.getRange().replace(Pattern.compile("([A-z]+) give money to ([A-z]+)"), "$2 take money from $1", options);
// Değiştirilen belgeyi kaydet
doc.save("modified-document.docx");
Bu, daha gelişmiş değişimler için değişim desenleri içerisinde değişimler yapmanıza olanak tanır.
Bir Dize ile Değiştirme
Aspose.Words for Java’yı kullanarak metni basit bir dizeyle değiştirebilirsiniz.
// Belgeyi yükle
Document doc = new Document("your-document.docx");
// Metni bir dizeyle değiştir
doc.getRange().replace("text-to-replace", "new-string", new FindReplaceOptions());
// Değiştirilen belgeyi kaydet
doc.save("modified-document.docx");
Bu örnekte, belge içinde “değiştirilecek metin” ifadesini “yeni-dize” ile değiştiriyoruz.
Eski Siparişi Kullanma
Bul ve değiştir işlemlerini gerçekleştirirken eski sırayı kullanabilirsiniz.
// Belgeyi yükle
Document doc = new Document("your-document.docx");
// Bir FindReplaceOptions örneği oluşturun ve UseLegacyOrder'ı true olarak ayarlayın
FindReplaceOptions options = new FindReplaceOptions();
options.setUseLegacyOrder(true);
// Metni değiştirirken seçenekleri kullanın
doc.getRange().replace(Pattern.compile("\\[(.*?)\\]"), "", options);
// Değiştirilen belgeyi kaydet
doc.save("modified-document.docx");
Bu, bul ve değiştir işlemleri için eski düzeni kullanmanıza olanak tanır.
Tablodaki Metni Değiştirme
Word belgenizdeki tabloların içindeki metinleri bulabilir ve değiştirebilirsiniz.
// Belgeyi yükle
Document doc = new Document("your-document.docx");
// Belirli bir tabloyu al (örneğin, ilk tablo)
Table table = (Table) doc.getChild(NodeType.TABLE, 0, true);
//Tablodaki metni değiştirmek için FindReplaceOptions'ı kullanın
table.getRange().replace("old-text", "new-text", new FindReplaceOptions());
// Değiştirilen belgeyi kaydet
doc.save("modified-document.docx");
Bu, özellikle tablolar içerisinde metin değiştirmeleri yapmanıza olanak tanır.
Çözüm
Aspose.Words for Java, Word belgelerinde metin bulma ve değiştirme için kapsamlı yetenekler sunar. Basit metin değiştirmeleri veya düzenli ifadeler, alan manipülasyonları veya özel değerlendiriciler kullanarak daha gelişmiş işlemler yapmanız gerekip gerekmediğine bakılmaksızın, Aspose.Words for Java sizin için her şeyi kapsar. Bu güçlü Java kütüphanesinin tüm potansiyelinden yararlanmak için Aspose tarafından sağlanan kapsamlı belgeleri ve örnekleri incelediğinizden emin olun.
SSS
Aspose.Words for Java’yı nasıl indirebilirim?
Aspose.Words for Java’yı web sitesini ziyaret ederek indirebilirsiniz.bu bağlantı.
Metin değiştirme için düzenli ifadeleri kullanabilir miyim?
Evet, Aspose.Words for Java’da metin değiştirme için düzenli ifadeler kullanabilirsiniz. Bu, daha gelişmiş ve esnek bul ve değiştir işlemleri gerçekleştirmenizi sağlar.
Değiştirme sırasında alanların içindeki metni nasıl yok sayabilirim?
Değiştirme sırasında alanların içindeki metni yoksaymak için,IgnoreFields
mülkiyetiFindReplaceOptions
iletrue
Bu, birleştirme alanları gibi alanlardaki metinlerin değiştirmeden hariç tutulmasını sağlar.
Başlık ve altbilgilerdeki metinleri değiştirebilir miyim?
Evet, Word belgenizin üstbilgileri ve altbilgilerindeki metni değiştirebilirsiniz. Sadece uygun üstbilgiye veya altbilgiye erişin vereplace
istenilen yöntemleFindReplaceOptions
.
UseLegacyOrder seçeneği ne işe yarar?
TheUseLegacyOrder
seçenekFindReplaceOptions
bul ve değiştir işlemlerini gerçekleştirirken eski sırayı kullanmanıza olanak tanır. Bu, eski sıra davranışının istendiği belirli senaryolarda yararlı olabilir.