PDF je populární formát, který se široce používá pro sdílení dokumentů mezi organizacemi a jednotlivci. Mohou nastat situace, kdy budete muset před sdílením najít a nahradit nějaký text v dokumentech PDF. Můžete to udělat ručně, ale to by zabralo více času a bylo by to méně efektivní. Lepší a rychlejší možností by bylo udělat to programově. V tomto článku se dozvíte, jak najít a nahradit text v souborech PDF pomocí C++.
- C++ API pro vyhledání a nahrazení textu v souborech PDF
- Najít a nahradit text v PDF pomocí C++
- C++ Najít a nahradit text na konkrétní stránce PDF
- Nahraďte text v oblasti stránek PDF pomocí C++
- Najít a nahradit text v souborech PDF pomocí regulárních výrazů
- Získejte bezplatnou licenci
C++ API pro vyhledání a nahrazení textu v souborech PDF
Aspose.PDF for C++ je knihovna C++ pro práci se soubory PDF. Poskytuje spoustu funkcí, které vám pomohou automatizovat různé aspekty vašich pracovních postupů PDF. Jednou z takových funkcí je vyhledání a nahrazení textu v souborech PDF. Rozhraní API můžete nainstalovat buď prostřednictvím NuGet, nebo si jej stáhnout přímo ze sekce ke stažení.
PM> Install-Package Aspose.PDF.Cpp
Najít a nahradit text v PDF pomocí C++
Aspose.PDF for C++ poskytuje třídu TextFragmentAbsorber pro vyhledávání textu v dokumentech PDF. Tuto třídu inicializujete textem, který chcete najít, a použijete ji k načtení všech odpovídajících fragmentů textu. Jakmile jsou všechny fragmenty k dispozici, přepnete se na ně a nahradíte text. Následují kroky k vyhledání a nahrazení textu v souborech PDF pomocí C++.
- Načtěte soubor PDF pomocí třídy Document.
- Vytvořte instanci třídy TextFragmentAbsorber a inicializujte ji textem, který chcete najít v souboru PDF.
- Přijměte TextFragmentAbsorber pro stránky pomocí Document->getPages()->Accept (System::SharedPtrText::TextFragmentAbsorber návštěvník) metoda.
- Načtěte všechny výskyty textu pomocí metody TextFragmentAbsorber->getTextFragments().
- Projděte TextFragmentCollection a aktualizujte text pomocí metody TextFragment->setText (System::String value).
- Uložte aktualizovaný soubor PDF pomocí metody Document->Save (System::String outputFileName).
Následuje ukázkový kód pro vyhledání a nahrazení textu v celém souboru PDF pomocí C++.
// Načíst soubor PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");
// Vytvořte objekt TextAbsorber, abyste našli všechny výskyty vstupní hledané fráze
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");
// Přijměte absorbér pro všechny stránky
pdfDocument->get_Pages()->Accept(textFragmentAbsorber);
// Získejte extrahované fragmenty textu
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();
// Projděte fragmenty
for (auto textFragment : textFragmentCollection)
{
// Aktualizujte text a další vlastnosti
textFragment->set_Text(u"UPDATED TEXT");
textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment->get_TextState()->set_FontSize(22);
}
// Uložte výsledný dokument PDF.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");
C++ Najít a nahradit text na konkrétní stránce PDF
Mohou nastat situace, kdy budete chtít najít a nahradit text pouze na konkrétní stránce, nikoli v celém dokumentu. Za tímto účelem přijměte objekt TextFragmentAbsorber pro stránku, kde chcete text nahradit. Následují kroky k vyhledání a nahrazení textu na konkrétní stránce v dokumentu PDF.
- Načtěte soubor PDF pomocí třídy Document.
- Vytvořte instanci třídy TextFragmentAbsorber a inicializujte ji textem, který chcete najít v souboru PDF.
- Přijměte TextFragmentAbsorber pro konkrétní stránku pomocí Document->getPages()->idxget (int32t index)->Accept (System::SharedPtrText::TextFragmentAbsorber návštěvník) metoda.
- Načtěte všechny výskyty textu pomocí metody TextFragmentAbsorber->getTextFragments().
- Projděte TextFragmentCollection a aktualizujte text pomocí metody TextFragment->setText (System::String value).
- Uložte aktualizovaný soubor PDF pomocí metody Document->Save (System::String outputFileName).
Následuje ukázkový kód pro vyhledání a nahrazení textu na konkrétní stránce PDF pomocí C++.
// Načíst soubor PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");
// Vytvořte objekt TextAbsorber, abyste našli všechny výskyty vstupní hledané fráze
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");
// Přijměte absorbér pro druhou stránku dokumentu
pdfDocument->get_Pages()->idx_get(2)->Accept(textFragmentAbsorber);
// Získejte extrahované fragmenty textu
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();
// Projděte fragmenty
for (auto textFragment : textFragmentCollection)
{
// Aktualizujte text a další vlastnosti
textFragment->set_Text(u"UPDATED TEXT");
textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment->get_TextState()->set_FontSize(22);
}
// Uložte výsledný dokument PDF.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument2.pdf");
Nahraďte text v oblasti stránek PDF pomocí C++
Namísto prohledávání celé stránky můžete určit oblast stránky, kde chcete nahradit text. K tomu poskytuje API třídu Rectangle. Následují kroky k vyhledání a nahrazení textu v určité části stránky PDF.
- Načtěte soubor PDF pomocí třídy Document.
- Vytvořte instanci třídy TextFragmentAbsorber a inicializujte ji textem, který chcete najít a nahradit v souboru PDF.
- Nastavte oblast stránky pro vyhledávání pomocí metody TextFragmentAbsorber->getTextSearchOptions()->setRectangle (System::SharedPtr< Aspose::Pdf::Rectangle> value).
- Přijměte TextFragmentAbsorber pro konkrétní stránku pomocí Document->getPages()->idxget (int32t index)->Accept (System::SharedPtrText::TextFragmentAbsorber návštěvník) metoda.
- Načtěte všechny výskyty textu pomocí metody TextFragmentAbsorber->getTextFragments().
- Projděte TextFragmentCollection a aktualizujte text pomocí metody TextFragment->setText (System::String value).
- Uložte aktualizovaný soubor PDF pomocí metody Document->Save (System::String outputFileName).
Následuje ukázkový kód pro vyhledání a nahrazení textu v konkrétní oblasti stránky PDF.
// Načíst soubor PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");
// Vytvořte objekt TextAbsorber, abyste našli všechny výskyty vstupní hledané fráze
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");
// hledat text v rámci stránky
textFragmentAbsorber->get_TextSearchOptions()->set_LimitToPageBounds(true);
// zadejte oblast stránky pro TextSearchOptions
textFragmentAbsorber->get_TextSearchOptions()->set_Rectangle(MakeObject<Rectangle>(100, 100, 800, 700));
// Přijměte absorbér pro první stránku dokumentu
pdfDocument->get_Pages()->idx_get(1)->Accept(textFragmentAbsorber);
// Získejte extrahované fragmenty textu
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();
// Projděte fragmenty
for (auto textFragment : textFragmentCollection)
{
// Aktualizujte text a další vlastnosti
textFragment->set_Text(u"UPDATED TEXT");
textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment->get_TextState()->set_FontSize(22);
}
// Uložte výsledný dokument PDF.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");
Najít a nahradit text v souborech PDF pomocí regulárních výrazů
Aspose.PDF for C++ také poskytuje možnost prohledávat text pomocí regulárních výrazů. Pomocí regulárních výrazů můžete najít text, jako jsou e-mailové adresy nebo telefonní čísla atd. K tomu musíte místo vyhledávacího řetězce zadat regulární výraz a použít třídu TextSearchOptions k označení, že používáte regulární výraz výraz pro hledání. Následují kroky k vyhledání a nahrazení textu v souborech PDF pomocí regulárního výrazu.
- Načtěte soubor PDF pomocí třídy Document.
- Vytvořte instanci třídy TextFragmentAbsorber a inicializujte ji regulárním výrazem, který chcete použít.
- Inicializujte třídu TextSearchOptions a předejte jejímu konstruktoru true. Bude to znamenat, že hledáte pomocí regulárního výrazu.
- Přiřaďte objekt TextSearchOptions třídě TextFragmentAbsorber pomocí TextFragmentAbsorber->setTextSearchOptions (System::SharedPtrAspose::Pdf::Text::TextSearchOptions hodnota) metoda.
- Přijměte TextFragmentAbsorber pro stránky pomocí Document->getPages()->Accept (System::SharedPtrText::TextFragmentAbsorber návštěvník) metoda.
- Načtěte všechny výskyty textu pomocí metody TextFragmentAbsorber->getTextFragments().
- Projděte TextFragmentCollection a aktualizujte text pomocí metody TextFragment->setText (System::String value).
- Uložte aktualizovaný soubor PDF pomocí metody Document->Save (System::String outputFileName).
Následuje ukázkový kód pro vyhledání a nahrazení textu v souborech PDF pomocí regulárního výrazu.
// Načíst soubor PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 2.pdf");
// Vytvořte objekt TextAbsorber, abyste našli všechny výskyty vstupní hledané fráze
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"\\d{4} - \\d{4}"); // Like 1999-2000
// Chcete-li povolit použití regulárních výrazů, nastavte možnost textového vyhledávání
auto textSearchOptions = MakeObject<TextSearchOptions>(true);
textFragmentAbsorber->set_TextSearchOptions(textSearchOptions);
// Přijměte absorbér pro všechny stránky dokumentu
pdfDocument->get_Pages()->Accept(textFragmentAbsorber);
// Získejte extrahované fragmenty textu
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();
// Projděte fragmenty
for (auto textFragment : textFragmentCollection)
{
// Aktualizujte text a další vlastnosti
textFragment->set_Text(u"UPDATED TEXT");
textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment->get_TextState()->set_FontSize(22);
}
// Uložte výsledný dokument PDF.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");
Získejte bezplatnou licenci
Rozhraní API můžete vyzkoušet bez omezení hodnocení tím, že požádáte o bezplatnou dočasnou licenci.
Závěr
V tomto článku jste se naučili, jak najít a nahradit text v souborech PDF pomocí C++. Viděli jste, jak nahradit text v celém dokumentu PDF, na konkrétní stránce PDF nebo v určité oblasti stránky. Dále jste se naučili vyhledávat a nahrazovat text pomocí regulárního výrazu. Aspose.PDF for C++ je výkonné API s mnoha dalšími funkcemi, díky kterým je práce s dokumenty PDF hračkou. Rozhraní API můžete podrobně prozkoumat pomocí oficiální dokumentace. Pokud máte nějaké dotazy, neváhejte nás kontaktovat na fóru.