PDF è un formato popolare ampiamente utilizzato per la condivisione di documenti tra organizzazioni e individui. Potrebbero verificarsi scenari in cui è necessario trovare e sostituire del testo nei documenti PDF prima della condivisione. Puoi farlo manualmente, ma ciò richiederebbe più tempo e sarebbe meno efficiente. L’opzione migliore e più veloce sarebbe quella di farlo a livello di codice. In questo articolo imparerai come trovare e sostituire il testo nei file PDF usando C++.
- API C++ per trovare e sostituire il testo nei file PDF
- Trova e sostituisci testo in PDF usando C++
- C++ Trova e sostituisci testo in una pagina PDF specifica
- Sostituisci il testo nell’area della pagina PDF usando C++
- Trova e sostituisci testo nei file PDF utilizzando le espressioni regolari
- Ottieni una licenza gratuita
API C++ per trovare e sostituire il testo nei file PDF
Aspose.PDF for C++ è una libreria C++ per lavorare con i file PDF. Fornisce una serie di funzionalità che ti aiutano ad automatizzare vari aspetti dei tuoi flussi di lavoro PDF. Una di queste funzionalità è trovare e sostituire il testo nei file PDF. Puoi installare l’API tramite NuGet o scaricarla direttamente dalla sezione download.
PM> Install-Package Aspose.PDF.Cpp
Trova e sostituisci testo in PDF usando C++
Aspose.PDF per C++ fornisce la classe TextFragmentAbsorber per la ricerca di testo nei documenti PDF. Inizializza questa classe con il testo che desideri trovare e lo usi per recuperare tutti i frammenti di testo corrispondenti. Una volta che tutti i frammenti sono disponibili, passaci sopra e sostituisci il testo. Di seguito sono riportati i passaggi per trovare e sostituire il testo nei file PDF utilizzando C++.
- Carica il file PDF utilizzando la classe Document.
- Crea un’istanza della classe TextFragmentAbsorber e inizializzala con il testo che vuoi trovare nel file PDF.
- Accetta TextFragmentAbsorber per le pagine usando Document->getPages()->Accept (System::SharedPtrText::TextFragmentAbsorber visitatore).
- Recupera tutte le occorrenze di testo utilizzando il metodo TextFragmentAbsorber->getTextFragments().
- Esegui il ciclo di TextFragmentCollection e aggiorna il testo utilizzando il metodo TextFragment->setText (System::String value).
- Salvare il file PDF aggiornato utilizzando il metodo Document->Save (System::String outputFileName).
Di seguito è riportato il codice di esempio per trovare e sostituire il testo nell’intero file PDF utilizzando C++.
// Carica file PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");
// Crea un oggetto TextAbsorber per trovare tutte le istanze della frase di ricerca di input
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");
// Accetta l'assorbitore per tutte le pagine
pdfDocument->get_Pages()->Accept(textFragmentAbsorber);
// Ottieni i frammenti di testo estratti
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();
// Passa attraverso i frammenti
for (auto textFragment : textFragmentCollection)
{
// Aggiorna testo e altre proprietà
textFragment->set_Text(u"UPDATED TEXT");
textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment->get_TextState()->set_FontSize(22);
}
// Salva il documento PDF risultante.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");
C++ Trova e sostituisci testo in una pagina PDF specifica
Potrebbero verificarsi situazioni in cui desideri trovare e sostituire solo il testo su una pagina specifica anziché sull’intero documento. Per questo, accetta l’oggetto TextFragmentAbsorber per la pagina in cui vuoi sostituire il testo. Di seguito sono riportati i passaggi per trovare e sostituire il testo in una pagina particolare nel documento PDF.
- Carica il file PDF utilizzando la classe Document.
- Crea un’istanza della classe TextFragmentAbsorber e inizializzala con il testo che vuoi trovare nel file PDF.
- Accetta TextFragmentAbsorber per la pagina particolare usando Document->getPages()->idxget (int32t index)->Accept (System::SharedPtrText::TextFragmentAbsorber visitatore) metodo.
- Recupera tutte le occorrenze di testo utilizzando il metodo TextFragmentAbsorber->getTextFragments().
- Passa in rassegna TextFragmentCollection e aggiorna il testo utilizzando il metodo TextFragment->setText (System::String value).
- Salvare il file PDF aggiornato utilizzando il metodo Document->Save (System::String outputFileName).
Di seguito è riportato il codice di esempio per trovare e sostituire il testo in una pagina PDF specifica utilizzando C++.
// Carica file PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");
// Crea un oggetto TextAbsorber per trovare tutte le istanze della frase di ricerca di input
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");
// Accettare l'assorbitore per la seconda pagina del documento
pdfDocument->get_Pages()->idx_get(2)->Accept(textFragmentAbsorber);
// Ottieni i frammenti di testo estratti
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();
// Passa attraverso i frammenti
for (auto textFragment : textFragmentCollection)
{
// Aggiorna testo e altre proprietà
textFragment->set_Text(u"UPDATED TEXT");
textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment->get_TextState()->set_FontSize(22);
}
// Salva il documento PDF risultante.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument2.pdf");
Sostituisci il testo nell’area della pagina PDF usando C++
Invece di cercare nell’intera pagina, puoi specificare l’area della pagina in cui desideri sostituire il testo. Per questo, l’API fornisce la classe Rectangle. Di seguito sono riportati i passaggi per trovare e sostituire il testo in una parte specifica della pagina PDF.
- Carica il file PDF utilizzando la classe Document.
- Crea un’istanza della classe TextFragmentAbsorber e inizializzala con il testo che desideri trovare e sostituire nel file PDF.
- Impostare l’area della pagina per la ricerca utilizzando TextFragmentAbsorber->getTextSearchOptions()->setRectangle (System::SharedPtr< Aspose::Pdf::Rectangle> value).
- Accetta TextFragmentAbsorber per la pagina particolare usando Document->getPages()->idxget (int32t index)->Accept (System::SharedPtrText::TextFragmentAbsorber visitatore) metodo.
- Recupera tutte le occorrenze di testo utilizzando il metodo TextFragmentAbsorber->getTextFragments().
- Passa in rassegna TextFragmentCollection e aggiorna il testo utilizzando il metodo TextFragment->setText (System::String value).
- Salvare il file PDF aggiornato utilizzando il metodo Document->Save (System::String outputFileName).
Di seguito è riportato il codice di esempio per trovare e sostituire il testo in un’area specifica della pagina PDF.
// Carica file PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 1.pdf");
// Crea un oggetto TextAbsorber per trovare tutte le istanze della frase di ricerca di input
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"Document");
// cercare il testo all'interno dei limiti della pagina
textFragmentAbsorber->get_TextSearchOptions()->set_LimitToPageBounds(true);
// specificare l'area della pagina per TextSearchOptions
textFragmentAbsorber->get_TextSearchOptions()->set_Rectangle(MakeObject<Rectangle>(100, 100, 800, 700));
// Accetta l'assorbitore per la prima pagina del documento
pdfDocument->get_Pages()->idx_get(1)->Accept(textFragmentAbsorber);
// Ottieni i frammenti di testo estratti
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();
// Passa attraverso i frammenti
for (auto textFragment : textFragmentCollection)
{
// Aggiorna testo e altre proprietà
textFragment->set_Text(u"UPDATED TEXT");
textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment->get_TextState()->set_FontSize(22);
}
// Salva il documento PDF risultante.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");
Trova e sostituisci testo nei file PDF utilizzando le espressioni regolari
Aspose.PDF per C++ offre anche la possibilità di cercare testo usando espressioni regolari. Con le espressioni regolari, puoi trovare testo come indirizzi e-mail o numeri di telefono, ecc. Per questo, devi specificare l’espressione regolare invece della stringa di ricerca e usare la classe TextSearchOptions per indicare che stai usando un espressione per la ricerca. Di seguito sono riportati i passaggi per trovare e sostituire il testo nei file PDF utilizzando un’espressione regolare.
- Carica il file PDF utilizzando la classe Documento.
- Crea un’istanza della classe TextFragmentAbsorber e inizializzala con l’espressione regolare che desideri utilizzare.
- Inizializza la classe TextSearchOptions e passa true al suo costruttore. Indicherà che stai cercando utilizzando un’espressione regolare.
- Assegna l’oggetto TextSearchOptions alla classe TextFragmentAbsorber usando TextFragmentAbsorber->setTextSearchOptions (System::SharedPtrAspose::Pdf::Text::TextSearchOptions valore).
- Accetta TextFragmentAbsorber per le pagine usando Document->getPages()->Accept (System::SharedPtrText::TextFragmentAbsorber visitatore).
- Recupera tutte le occorrenze di testo utilizzando il metodo TextFragmentAbsorber->getTextFragments().
- Passa in rassegna TextFragmentCollection e aggiorna il testo utilizzando il metodo TextFragment->setText (System::String value).
- Salvare il file PDF aggiornato utilizzando il metodo Document->Save (System::String outputFileName).
Di seguito è riportato il codice di esempio per trovare e sostituire il testo nei file PDF utilizzando un’espressione regolare.
// Carica file PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\Sample 2.pdf");
// Crea un oggetto TextAbsorber per trovare tutte le istanze della frase di ricerca di input
auto textFragmentAbsorber = MakeObject<TextFragmentAbsorber>(u"\\d{4} - \\d{4}"); // Like 1999-2000
// Imposta l'opzione di ricerca del testo per abilitare l'uso delle espressioni regolari
auto textSearchOptions = MakeObject<TextSearchOptions>(true);
textFragmentAbsorber->set_TextSearchOptions(textSearchOptions);
// Accetta l'assorbitore per tutte le pagine del documento
pdfDocument->get_Pages()->Accept(textFragmentAbsorber);
// Ottieni i frammenti di testo estratti
auto textFragmentCollection = textFragmentAbsorber->get_TextFragments();
// Passa attraverso i frammenti
for (auto textFragment : textFragmentCollection)
{
// Aggiorna testo e altre proprietà
textFragment->set_Text(u"UPDATED TEXT");
textFragment->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment->get_TextState()->set_FontSize(22);
}
// Salva il documento PDF risultante.
pdfDocument->Save(u"OutputDirectory\\UpdatedDocument.pdf");
Ottieni una licenza gratuita
Puoi provare l’API senza limitazioni di valutazione richiedendo una licenza temporanea gratuita.
Conclusione
In questo articolo, hai imparato come trovare e sostituire il testo nei file PDF usando C++. Hai visto come sostituire il testo nell’intero documento PDF, in una pagina PDF specifica o in una particolare area della pagina. Inoltre, hai imparato a cercare e sostituire il testo utilizzando un’espressione regolare. Aspose.PDF per C++ è una potente API con molte funzionalità aggiuntive che rendono il lavoro con i documenti PDF un gioco da ragazzi. Puoi esplorare l’API in dettaglio utilizzando la documentazione ufficiale. In caso di domande, non esitare a contattarci sul forum.