In vari casi, potrebbe essere necessario trovare e sostituire un particolare pezzo di testo nei documenti PDF. Tuttavia, la ricerca e l’aggiornamento manuale di ogni occorrenza può costarti tempo e fatica aggiuntivi. In questi casi, l’opzione trova e sostituisci ti semplifica la vita. In questo articolo imparerai come trovare e sostituire il testo nei documenti PDF usando Java.
- API Java per trovare e sostituire il testo in PDF
- Trova e sostituisci testo in PDF utilizzando Java
- Sostituisci il testo su una pagina particolare in PDF
- Sostituisci il testo usando l’espressione regolare
API Java per trovare e sostituire il testo in PDF - Download gratuito
Aspose.PDF for Java è progettato per generare e manipolare file PDF dall’interno delle applicazioni Java. L’API offre un’ampia gamma di funzioni di manipolazione PDF di base e avanzate, tra cui la ricerca e la sostituzione del testo. Puoi scaricare l’API o installarla utilizzando le seguenti configurazioni Maven.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>21.1</version>
</dependency>
Trova e sostituisci testo in PDF utilizzando Java
Per sostituire un particolare testo in PDF, dovresti prima ottenere tutti i frammenti di testo corrispondenti alla stringa di ricerca. Una volta che li hai, sostituisci semplicemente ogni frammento con il testo aggiornato uno per uno.
Di seguito sono riportati i passaggi per trovare e sostituire il testo in un file PDF utilizzando Java.
- Carica il file PDF utilizzando la classe Documento.
- Crea un oggetto della classe TextFragmentAbsorber e inizializzalo con il testo che desideri trovare e sostituire.
- Accetta l’assorbitore per le pagine in PDF utilizzando il metodo Document.getPages().accept(TextFragmentAbsorber).
- Ottieni tutte le occorrenze del testo restituito da TextFragmentAbsorber.getTextFragments() in un oggetto TextFragmentCollection.
- Scorri ogni TextFragment nell’oggetto TextFragmentCollection e sostituisci il testo usando il metodo TextFragment.setText(String).
- Salvare il file PDF aggiornato utilizzando il metodo Document.save(String).
L’esempio di codice seguente mostra come trovare e sostituire il testo in PDF.
// Per esempi completi e file di dati, visitare https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Apri documento
Document pdfDocument = new Document("source.pdf");
// Crea un oggetto TextAbsorber per trovare tutte le istanze della frase di ricerca di input
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");
// Accetta l'assorbitore per tutte le pagine del documento
pdfDocument.getPages().accept(textFragmentAbsorber);
// Ottieni i frammenti di testo estratti nella raccolta
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();
// Passa attraverso i frammenti
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
// Aggiorna testo e altre proprietà
textFragment.setText("New Pharase");
textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
textFragment.getTextState().setFontSize(22);
textFragment.getTextState().setForegroundColor(Color.getBlue());
textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// Salva il file PDF aggiornato
pdfDocument.save("Updated_Text.pdf");
Cerca e sostituisci testo su una pagina particolare in PDF
Invece di trovare e sostituire il testo nell’intero PDF, puoi specificare una singola pagina in cui desideri sostituire le occorrenze del testo. In questo caso, accetterai TextFragmentAbsorber solo per una pagina particolare specificando l’indice della pagina.
Di seguito sono riportati i passaggi per cercare e sostituire il testo su una pagina particolare in PDF in Java.
- Carica il file PDF utilizzando la classe Documento.
- Crea un oggetto della classe TextFragmentAbsorber e inizializzalo con il testo che desideri trovare e sostituire.
- Accetta l’assorbitore per una particolare pagina in PDF utilizzando il metodo Document.getPages().getItem(Int pageIndex).accept(TextFragmentAbsorber).
- Ottieni tutte le occorrenze del testo restituito da TextFragmentAbsorber.getTextFragments() nell’oggetto TextFragmentCollection.
- Scorri ogni TextFragment nell’oggetto TextFragmentCollection e sostituisci il testo usando il metodo TextFragment.setText(String).
- Salvare il file PDF aggiornato utilizzando il metodo Document.save(String).
L’esempio di codice seguente mostra come trovare e sostituire il testo in una determinata pagina in PDF utilizzando Java.
// Per esempi completi e file di dati, visitare https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Apri documento
Document pdfDocument = new Document("source.pdf");
// Crea un oggetto TextAbsorber per trovare tutte le istanze della frase di ricerca di input
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");
// Accetta l'assorbitore per la prima pagina del documento
pdfDocument.getPages().get_Item(0).accept(textFragmentAbsorber);
// Ottieni i frammenti di testo estratti nella raccolta
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();
// Passa attraverso i frammenti
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
// Aggiorna testo e altre proprietà
textFragment.setText("New Pharase");
textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
textFragment.getTextState().setFontSize(22);
textFragment.getTextState().setForegroundColor(Color.getBlue());
textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// Salva il file PDF aggiornato
pdfDocument.save("Updated_Text.pdf");
Trova e sostituisci testo utilizzando le espressioni regolari in PDF
Puoi anche specificare un’espressione regolare per cercare il testo che corrisponde a un modello particolare come e-mail, SSN, ecc. Di seguito sono riportati i passaggi per definire e utilizzare un’espressione regolare per cercare e sostituire il testo in PDF utilizzando Java.
- Carica il file PDF utilizzando la classe Documento.
- Crea un oggetto della classe TextFragmentAbsorber e inizializzalo con l’espressione regolare che desideri utilizzare.
- Crea un oggetto della classe TextSearchOptions e inizializzalo con true per abilitare la ricerca basata su espressioni regolari.
- Impostare le opzioni utilizzando il metodo TextFragmentAbsorber.setTextSearchOptions(TextSearchOptions).
- Accetta l’assorbitore per le pagine in PDF utilizzando il metodo Document.getPages().accept(TextFragmentAbsorber).
- Ottieni tutte le occorrenze trovate del testo restituito da TextFragmentAbsorber.getTextFragments() nell’oggetto TextFragmentCollection.
- Scorri ogni TextFragment nell’oggetto TextFragmentCollection e sostituisci il testo usando il metodo TextFragment.setText(String).
- Salva il file PDF aggiornato utilizzando il metodo Document.save(String).
L’esempio di codice seguente mostra come trovare e sostituire il testo in PDF usando un’espressione regolare.
// Per esempi completi e file di dati, visitare https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Apri documento
Document pdfDocument = new Document("input.pdf");
// Crea un oggetto TextAbsorber per trovare tutte le istanze della frase di ricerca di input
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // like 1999-2000
// Imposta l'opzione di ricerca del testo per abilitare l'uso delle espressioni regolari
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.setTextSearchOptions(textSearchOptions);
// Accetta l'assorbitore per tutte le pagine del documento
pdfDocument.getPages().accept(textFragmentAbsorber);
// Ottieni i frammenti di testo estratti nella raccolta
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();
// Passa attraverso i frammenti
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
// Aggiorna testo e altre proprietà
textFragment.setText("New Pharase");
textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
textFragment.getTextState().setFontSize(22);
textFragment.getTextState().setForegroundColor(Color.getBlue());
textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// Salva il file PDF aggiornato
pdfDocument.save("Updated_Text.pdf");
Ottieni una licenza API gratuita
Puoi provare l’API senza limitazioni di valutazione gratuitamente. Ottieni una licenza temporanea gratuita ora.
Conclusione
In questo articolo hai imparato come trovare e sostituire il testo in PDF usando Java. Inoltre, hai visto come utilizzare un’espressione regolare per cercare e sostituire il testo seguendo uno schema particolare. Puoi esplorare di più sull’API Java PDF utilizzando la documentazione.