C# PDF'de metin bul ve değiştir

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

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.

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.

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.

Ayrıca bakınız