C++ kullanarak PDF'de Metin Bul ve Değiştir

PDF, kuruluşlar ve bireyler arasında belge paylaşımı için yaygın olarak kullanılan popüler bir biçimdir. Paylaşmadan önce PDF belgelerinde bazı metinleri bulup değiştirmeniz gereken senaryolar olabilir. Bunu manuel olarak yapabilirsiniz, ancak bu daha fazla zaman alır ve daha az verimli olur. Daha iyi ve daha hızlı seçenek, bunu programlı olarak yapmak olacaktır. Bu makalede, C++ kullanarak PDF dosyalarındaki metni nasıl bulacağınızı ve değiştireceğinizi öğreneceksiniz.

PDF dosyalarında Metin Bulmak ve Değiştirmek için C++ API

Aspose.PDF for C++, PDF dosyalarıyla çalışmak için bir C++ kitaplığıdır. PDF iş akışlarınızın çeşitli yönlerini otomatikleştirmenize yardımcı olan bir dizi özellik sağlar. Böyle bir özellik, PDF dosyalarındaki metni bulmak ve değiştirmektir. API’yi NuGet aracılığıyla yükleyebilir veya doğrudan indirilenler bölümünden indirebilirsiniz.

PM> Install-Package Aspose.PDF.Cpp

C++ kullanarak PDF’de Metin Bul ve Değiştir

Aspose.PDF for C++, PDF belgelerinde metin aramak için TextFragmentAbsorber sınıfını sağlar. Bu sınıfı, bulmak istediğiniz metinle başlatırsınız ve onu eşleşen tüm metin parçalarını almak için kullanırsınız. Tüm parçalar mevcut olduğunda, bunların üzerinden geçer ve metni değiştirirsiniz. Aşağıda, C++ kullanarak PDF dosyalarındaki metni bulma ve değiştirme adımları yer almaktadır.

Aşağıda, C++ kullanarak tüm PDF dosyasındaki metni bulmak ve değiştirmek için örnek kod verilmiştir.

// PDF dosyasını yükle
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// Giriş arama ifadesinin tüm örneklerini bulmak için TextAbsorber nesnesi oluşturun
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");

// Tüm sayfalar için emiciyi kabul edin
pdfDocument->get_Pages()->Accept(textFragmentAbsorber);

// Ayıklanan metin parçalarını alın
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();

// Parçalar arasında döngü
for (auto textFragment : textFragmentCollection)
{
	// Metni ve diğer özellikleri güncelleyin
	textFragment->set_Text(u"UPDATED TEXT");
	textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
	textFragment->get_TextState()->set_FontSize(22);
}

// Ortaya çıkan PDF belgesini kaydedin.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");

C++ Belirli Bir PDF Sayfasındaki Metni Bul ve Değiştir

Tüm belge yerine yalnızca belirli bir sayfadaki metni bulup değiştirmek istediğiniz durumlar olabilir. Bunun için metni değiştirmek istediğiniz sayfa için TextFragmentAbsorber nesnesini kabul edin. Aşağıda, PDF belgesindeki belirli bir sayfadaki metni bulma ve değiştirme adımları yer almaktadır.

Aşağıda, C++ kullanarak belirli bir PDF sayfasındaki metni bulmak ve değiştirmek için kullanılan örnek kod verilmiştir.

// PDF dosyasını yükle
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// Giriş arama ifadesinin tüm örneklerini bulmak için TextAbsorber nesnesi oluşturun
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");

// Dokümanın ikinci sayfası için emiciyi kabul edin
pdfDocument->get_Pages()->idx_get(2)->Accept(textFragmentAbsorber);

// Ayıklanan metin parçalarını alın
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();

// Parçalar arasında döngü
for (auto textFragment : textFragmentCollection)
{
	// Metni ve diğer özellikleri güncelleyin
	textFragment->set_Text(u"UPDATED TEXT");
	textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
	textFragment->get_TextState()->set_FontSize(22);
}

// Ortaya çıkan PDF belgesini kaydedin.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument2.pdf");

C++ kullanarak PDF Sayfa Bölgesindeki Metni Değiştirme

Tüm sayfayı aramak yerine, sayfanın metni değiştirmek istediğiniz bölgesini belirtebilirsiniz. Bunun için API, Rectangle sınıfını sağlar. Aşağıdakiler, PDF sayfasının belirli bir bölümündeki metni bulma ve değiştirme adımlarıdır.

Belirli bir PDF sayfası bölgesindeki metni bulup değiştirmek için örnek kod aşağıdadır.

// PDF dosyasını yükle
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");

// Giriş arama ifadesinin tüm örneklerini bulmak için TextAbsorber nesnesi oluşturun
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");

// sayfa sınırları içinde arama metni
textFragmentAbsorber->get_TextSearchOptions()->set_LimitToPageBounds(true);

// TextSearchOptions için sayfa bölgesini belirtin
textFragmentAbsorber->get_TextSearchOptions()->set_Rectangle(MakeObject<Rectangle>(100, 100, 800, 700));

// Belgenin ilk sayfası için emiciyi kabul edin
pdfDocument->get_Pages()->idx_get(1)->Accept(textFragmentAbsorber);

// Ayıklanan metin parçalarını alın
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();

// Parçalar arasında döngü
for (auto textFragment : textFragmentCollection)
{
	// Metni ve diğer özellikleri güncelleyin
	textFragment->set_Text(u"UPDATED TEXT");
	textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
	textFragment->get_TextState()->set_FontSize(22);
}

// Ortaya çıkan PDF belgesini kaydedin.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");

Normal İfadeler Kullanarak PDF dosyalarındaki Metni Bul ve Değiştir

Aspose.PDF for C++ ayrıca düzenli ifadeler kullanarak metin arama yeteneği sağlar. Normal ifadelerle, e-posta adresleri veya telefon numaraları gibi metinler bulabilirsiniz. Bunun için, arama dizesi yerine normal ifadeyi belirtmeniz ve normal ifade kullandığınızı belirtmek için TextSearchOptions sınıfını kullanmanız gerekir. arama ifadesi. Aşağıda, normal bir ifade kullanarak PDF dosyalarındaki metni bulma ve değiştirme adımları yer almaktadır.

Aşağıda, normal bir ifade kullanarak PDF dosyalarındaki metni bulmak ve değiştirmek için kullanılan örnek kod yer almaktadır.

// PDF dosyasını yükle
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 2.pdf");

// Giriş arama ifadesinin tüm örneklerini bulmak için TextAbsorber nesnesi oluşturun
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"\\d{4} - \\d{4}"); // Like 1999-2000

// Normal ifade kullanımını etkinleştirmek için metin arama seçeneğini ayarlayın
auto textSearchOptions = MakeObject<TextSearchOptions>(true);
textFragmentAbsorber->set_TextSearchOptions(textSearchOptions);

// Belgenin tüm sayfaları için emiciyi kabul edin
pdfDocument->get_Pages()->Accept(textFragmentAbsorber);

// Ayıklanan metin parçalarını alın
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();

// Parçalar arasında döngü
for (auto textFragment : textFragmentCollection)
{
	// Metni ve diğer özellikleri güncelleyin
	textFragment->set_Text(u"UPDATED TEXT");
	textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
	textFragment->get_TextState()->set_FontSize(22);
}

// Ortaya çıkan PDF belgesini kaydedin.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");

Ücretsiz Lisans Alın

Ücretsiz bir geçici lisans isteyerek API’yi değerlendirme kısıtlamaları olmadan deneyebilirsiniz.

Çözüm

Bu makalede, C++ kullanarak PDF dosyalarında metin bulmayı ve değiştirmeyi öğrendiniz. Tüm PDF belgesindeki, belirli bir PDF sayfasındaki veya sayfanın belirli bir bölgesindeki metnin nasıl değiştirildiğini gördünüz. Ayrıca, düzenli bir ifade kullanarak metin aramayı ve değiştirmeyi öğrendiniz. Aspose.PDF for C++, PDF belgeleriyle çalışmayı çocuk oyuncağı haline getiren birçok ek özelliğe sahip güçlü bir API’dir. Resmi belgeleri kullanarak API’yi ayrıntılı olarak inceleyebilirsiniz. Herhangi bir sorunuz varsa, lütfen forumda bizimle iletişime geçmekten çekinmeyin.

Ayrıca bakınız