Bul ve değiştir seçeneği, bir belgedeki belirli bir metin parçasını tek seferde değiştirmeyi mümkün kılar. Bu şekilde, tüm belgede metnin geçtiği her yeri manuel olarak bulmanız ve güncellemeniz gerekmez. Bu makale bir adım daha ileri giderek PDF belgelerinde metin bul ve değiştir özelliğinin nasıl otomatikleştirileceğini kapsar. Özellikle, C# .NET’te bir PDF’de metin bulmayı ve değiştirmeyi öğreneceksiniz. C# kullanarak belirli bir sayfadaki veya bir sayfa bölgesindeki metnin nasıl değiştirileceğini de göstereceğiz.
- PDF’de Metin Bulmak ve Değiştirmek için C# API
- C# kullanarak PDF’de Metin Bul ve Değiştir
- PDF’de Belirli Bir Sayfadaki Metni Değiştirme
- PDF Sayfa Bölgesindeki Metni Değiştir
- Regex kullanarak PDF’de Metin Bul ve Değiştir
PDF’de Metni Bulmak ve Değiştirmek için C# .NET API - Ücretsiz İndirme
Aspose.PDF for .NET, .NET uygulamaları için temel ve gelişmiş PDF işleme özellikleri sağlayan bir C# sınıf kitaplığıdır. API ayrıca PDF dosyalarındaki metni farklı şekillerde sorunsuz bir şekilde bulmanızı ve değiştirmenizi sağlar. API’nin DLL’sini indirebilir veya NuGet kullanarak yükleyebilirsiniz.
PM> Install-Package Aspose.PDF
C# kullanarak PDF’de Metin Bul ve Değiştir
Aşağıdakiler, bir PDF belgesindeki metni bulma ve değiştirme adımlarıdır.
- PDF belgesini yolunu kullanarak yüklemek için Document sınıfını kullanın.
- TextFragmentAbsorber sınıfının bir örneğini oluşturun ve arama ifadesini kurucusuna sağlayın.
- Document.Pages.Accept(TextFragmentAbsorber) kullanarak PDF’nin tüm sayfaları için metin emiciyi kabul edin.
- Ayıklanan metin parçalarını TextFragmentCollection nesnesine alın.
- Bulunan TextFragmentCollection içinde dolaşın ve her parçadaki metni değiştirin.
- Güncellenmiş PDF belgesini Document.Save(String) yöntemini kullanarak kaydedin.
Aşağıdaki kod örneği, C# kullanarak PDF’de metnin nasıl bulunacağını ve değiştirileceğini gösterir.
// Belgeyi aç
Document pdfDocument = new Document("Document.pdf");
// Giriş arama ifadesinin tüm örneklerini bulmak için TextAbsorber nesnesi oluşturun
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");
// Tüm sayfalar için emiciyi kabul edin
pdfDocument.Pages.Accept(textFragmentAbsorber);
// Ayıklanan metin parçalarını alın
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
// Parçalar arasında döngü
foreach (TextFragment textFragment in textFragmentCollection)
{
// Metni ve diğer özellikleri güncelleyin
textFragment.Text = "TEXT";
textFragment.TextState.Font = FontRepository.FindFont("Verdana");
textFragment.TextState.FontSize = 22;
textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}
// Ortaya çıkan PDF belgesini kaydedin.
pdfDocument.Save("updated-document.pdf");
C# Belirli bir PDF Sayfasındaki Metni Değiştir
Aşağıda, bir PDF belgesinde belirli bir sayfadaki metni bulma ve değiştirme adımları yer almaktadır.
- Yolu kullanarak PDF belgesini yüklemek için Belge sınıfını kullanın.
- TextFragmentAbsorber sınıfının bir örneğini oluşturun ve arama ifadesini kurucusuna sağlayın.
- [Document.Pages1.Accept(TextFragmentAbsorber)]12‘yi kullanarak istenen sayfa için metin emiciyi kabul edin.
- Bulunan TextFragmentAbsorber.TextFragments koleksiyonunda dolaşın ve her parçadaki metni değiştirin.
- Document.Save(String) yöntemini kullanarak güncellenmiş PDF belgesini kaydedin.
Aşağıdaki kod örneği, C# kullanarak PDF’nin belirli bir sayfasındaki metnin nasıl bulunacağını ve değiştirileceğini gösterir.
// Belgeyi aç
Document pdfDocument = new Document("Document.pdf");
// Giriş arama ifadesinin tüm örneklerini bulmak için TextAbsorber nesnesi oluşturun
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");
// İstenen emiciyi kabul edin
pdfDocument.Pages[1].Accept(textFragmentAbsorber);
// Ayıklanan metin parçalarını alın
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
// Parçalar arasında döngü
foreach (TextFragment textFragment in textFragmentCollection)
{
// Metni ve diğer özellikleri güncelleyin
textFragment.Text = "TEXT";
textFragment.TextState.Font = FontRepository.FindFont("Verdana");
textFragment.TextState.FontSize = 22;
textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}
// Ortaya çıkan PDF belgesini kaydedin.
pdfDocument.Save("updated-document.pdf");
C#’ta PDF Sayfa Bölgesindeki Metni Değiştir
Ayrıca bir PDF belgesinde sayfanın belirli bir bölgesindeki metni bulabilir ve değiştirebilirsiniz. Aşağıdaki adımlar, belirli bir bölgenin nasıl tanımlanacağını ve ardından içindeki metnin nasıl değiştirileceğini gösterir.
- PDF belgesini yolunu kullanarak yüklemek için Belge sınıfını kullanın.
- TextFragmentAbsorber sınıfının bir örneğini oluşturun ve arama ifadesini kurucusuna sağlayın.
- Document.Pages[0].Accept(TextFragmentAbsorber) öğesini kullanarak istenen sayfa için metin emiciyi kabul edin.
- Rectangle sınıfını kullanarak sayfa bölgesini tanımlayın.
- TextFragmentAbsorber.TextFragments koleksiyonunda dolaşın ve her parçadaki metni değiştirin.
- Güncellenmiş PDF belgesini Document.Save(String) yöntemini kullanarak kaydedin.
Aşağıdaki kod örneği, C# kullanılarak bir PDF’de belirli bir sayfa bölgesindeki metnin nasıl bulunacağını ve değiştirileceğini gösterir.
// PDF dosyasını yükle
Document pdf = new Document("Document.pdf");
// TextFragment Absorber nesnesini başlat
TextFragmentAbsorber TextFragmentAbsorberAddress = new TextFragmentAbsorber();
// sayfa bağlı metin içinde arama
TextFragmentAbsorberAddress.TextSearchOptions.LimitToPageBounds = true;
// TextSearch Seçenekleri için sayfa bölgesini belirtin
TextFragmentAbsorberAddress.TextSearchOptions.Rectangle = new Rectangle(100, 100, 200, 200);
// PDF dosyasının ilk sayfasından arama metni
pdf.Pages[1].Accept(TextFragmentAbsorberAddress);
// bireysel TextFragment ile yineleme
foreach (TextFragment tf in TextFragmentAbsorberAddress.TextFragments)
{
// metni boş karakterlere güncelle
tf.Text = "";
}
// metin değiştirdikten sonra güncellenmiş PDF dosyasını kaydedin
pdf.Save("output.pdf");
C# PDF’deki Metni Normal İfadeyle (Regex) Değiştir
Belirli bir kalıpla eşleşen metin oluşumlarını bulmak ve değiştirmek için normal ifadeleri de kullanabilirsiniz. Bunun için düz arama ifadesi yerine normal bir ifade sağlamanız ve TextSearchOptions kullanmanız yeterlidir. Bunu yapmak için gereken adımlar aşağıdadır.
- PDF belgesini yolunu kullanarak yüklemek için Belge sınıfını kullanın.
- TextFragmentAbsorber sınıfının bir örneğini oluşturun ve arama ifadesini kurucusuna sağlayın.
- TextSearchOptions sınıfının bir örneğini oluşturun ve normal ifade tabanlı aramayı etkinleştirmek için yapıcısına true iletin.
- TextSearchOptions nesnesini TextFragmentAbsorber.TextSearchOptions özelliğine atayın.
- Document.Pages[0].Accept(TextFragmentAbsorber) öğesini kullanarak istenen sayfa için metin emiciyi kabul edin.
- Rectangle sınıfını kullanarak sayfa bölgesini tanımlayın.
- TextFragmentAbsorber.TextFragments koleksiyonunda dolaşın ve her parçadaki metni değiştirin.
- Document.Save(String) yöntemini kullanarak güncellenmiş PDF belgesini kaydedin.
Aşağıdaki kod örneği, C# kullanarak normal ifade kullanarak bir PDF’deki metnin nasıl bulunacağını ve değiştirileceğini gösterir.
// Belgeyi aç
Document pdfDocument = new Document("Document.pdf");
// Normal ifadeyle eşleşen tüm ifadeleri bulmak için TextAbsorber nesnesi oluşturun
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // Like 1999-2000
// Normal ifade kullanımını belirtmek için metin arama seçeneğini ayarlayın
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.TextSearchOptions = textSearchOptions;
// Tek bir sayfa için emiciyi kabul edin
pdfDocument.Pages[1].Accept(textFragmentAbsorber);
// Ayıklanan metin parçalarını alın
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
// Parçalar arasında döngü
foreach (TextFragment textFragment in textFragmentCollection)
{
// Metni ve diğer özellikleri güncelleyin
textFragment.Text = "New Phrase";
// Bir nesnenin örneğine ayarlayın.
textFragment.TextState.Font = FontRepository.FindFont("Verdana");
textFragment.TextState.FontSize = 22;
textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Blue);
textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
}
// PDF'yi kaydet
pdfDocument.Save("output.pdf");
Çözüm
PDF belgelerini web veya masaüstü uygulamalarından değiştirmek için bugünlerde PDF otomasyonu yaygın olarak benimsenmiştir. Bu makale, C# dilinde PDF’de metin bulmaya ve değiştirmeye yönelik yararlı bir PDF otomasyon özelliğini ele aldı. Adım adım kılavuz ve kod örnekleri, tüm bir PDF’de, PDF’de belirli bir sayfada veya bir sayfa bölgesinde metnin nasıl bulunacağını ve değiştirileceğini göstermiştir. API’nin belgelerini kullanarak daha gelişmiş özellikleri keşfedebilirsiniz.