L’opzione trova e sostituisci consente di sostituire una particolare parte di testo in un documento in una volta sola. In questo modo, non è necessario individuare e aggiornare manualmente ogni occorrenza del testo nell’intero documento. Questo articolo fa anche un ulteriore passo avanti e spiega come automatizzare la funzione trova e sostituisci testo nei documenti PDF. In particolare, imparerai come trovare e sostituire il testo in un PDF in C# .NET. Dimostreremo anche come sostituire il testo in una pagina particolare o in un’area della pagina usando C#..
- API C# per trovare e sostituire il testo in PDF
- Trova e sostituisci testo in PDF usando C#
- Sostituisci il testo in una pagina particolare in PDF
- Sostituisci il testo nell’area della pagina PDF
- Trova e sostituisci testo in PDF usando Regex
API C# .NET per trovare e sostituire testo in PDF - Download gratuito
Aspose.PDF for .NET è una libreria di classi C# che fornisce funzionalità di manipolazione PDF di base e avanzate per le applicazioni .NET. L’API consente inoltre di trovare e sostituire il testo nei file PDF in diversi modi senza interruzioni. Puoi scaricare la DLL dell’API o installarla utilizzando NuGet.
PM> Install-Package Aspose.PDF
Trova e sostituisci testo in PDF usando C#
Di seguito sono riportati i passaggi per trovare e sostituire il testo in un documento PDF.
- Usa la classe Document per caricare il documento PDF usando il suo percorso.
- Crea un’istanza della classe TextFragmentAbsorber e fornisci la frase di ricerca al suo costruttore.
- Accetta l’assorbitore di testo per tutte le pagine del PDF utilizzando Document.Pages.Accept(TextFragmentAbsorber).
- Ottieni i frammenti di testo estratti nell’oggetto TextFragmentCollection.
- Scorri la TextFragmentCollection trovata e sostituisci il testo in ogni frammento.
- Salva il documento PDF aggiornato utilizzando il metodo Document.Save(String).
L’esempio di codice seguente mostra come trovare e sostituire il testo in PDF usando C#.
// Apri documento
Document pdfDocument = new Document("Document.pdf");
// Crea un oggetto TextAbsorber per trovare tutte le istanze della frase di ricerca di input
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");
// Accetta l'assorbitore per tutte le pagine
pdfDocument.Pages.Accept(textFragmentAbsorber);
// Ottieni i frammenti di testo estratti
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
// Passa attraverso i frammenti
foreach (TextFragment textFragment in textFragmentCollection)
{
// Aggiorna testo e altre proprietà
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);
}
// Salva il documento PDF risultante.
pdfDocument.Save("updated-document.pdf");
C# Sostituisci il testo in una particolare pagina PDF
Di seguito sono riportati i passaggi per trovare e sostituire il testo su una pagina particolare in un documento PDF.
- Usa la classe Document per caricare il documento PDF usando il suo percorso.
- Crea un’istanza della classe TextFragmentAbsorber e fornisci la frase di ricerca al suo costruttore.
- Accetta l’assorbitore di testo per la pagina desiderata utilizzando [Document.Pages1.Accept(TextFragmentAbsorber)]12.
- Scorri la raccolta TextFragmentAbsorber.TextFragments trovata e sostituisci il testo in ogni frammento.
- Salva il documento PDF aggiornato utilizzando il metodo Document.Save(String).
L’esempio di codice seguente mostra come trovare e sostituire il testo in una pagina particolare del PDF usando C#.
// Apri documento
Document pdfDocument = new Document("Document.pdf");
// Crea un oggetto TextAbsorber per trovare tutte le istanze della frase di ricerca di input
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("text");
// Accettare l'assorbitore per desiderato
pdfDocument.Pages[1].Accept(textFragmentAbsorber);
// Ottieni i frammenti di testo estratti
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
// Passa attraverso i frammenti
foreach (TextFragment textFragment in textFragmentCollection)
{
// Aggiorna testo e altre proprietà
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);
}
// Salva il documento PDF risultante.
pdfDocument.Save("updated-document.pdf");
Sostituisci il testo nell’area della pagina PDF in C#
Puoi anche trovare e sostituire il testo in una particolare area della pagina in un documento PDF. I passaggi seguenti mostrano come definire una determinata regione e quindi sostituire il testo al suo interno.
- Usa la classe Document per caricare il documento PDF usando il suo percorso.
- Crea un’istanza della classe TextFragmentAbsorber e fornisci la frase di ricerca al suo costruttore.
- Accetta l’assorbitore di testo per la pagina desiderata utilizzando Document.Pages[0].Accetta(TextFragmentAbsorber).
- Definisci la regione della pagina usando la classe Rectangle.
- Scorri la raccolta TextFragmentAbsorber.TextFragments e sostituisci il testo in ogni frammento.
- Salva il documento PDF aggiornato utilizzando il metodo Document.Save(String).
L’esempio di codice seguente mostra come trovare e sostituire il testo in una determinata area della pagina in un PDF usando C#.
// caricare il file PDF
Document pdf = new Document("Document.pdf");
// istanziare l'oggetto TextFragment Absorber
TextFragmentAbsorber TextFragmentAbsorberAddress = new TextFragmentAbsorber();
// testo di ricerca all'interno della pagina rilegata
TextFragmentAbsorberAddress.TextSearchOptions.LimitToPageBounds = true;
// specificare l'area della pagina per le opzioni TextSearch
TextFragmentAbsorberAddress.TextSearchOptions.Rectangle = new Rectangle(100, 100, 200, 200);
// cerca il testo dalla prima pagina del file PDF
pdf.Pages[1].Accept(TextFragmentAbsorberAddress);
// scorrere il singolo TextFragment
foreach (TextFragment tf in TextFragmentAbsorberAddress.TextFragments)
{
// aggiorna il testo in caratteri vuoti
tf.Text = "";
}
// salva il file PDF aggiornato dopo la sostituzione del testo
pdf.Save("output.pdf");
C# Sostituisci il testo in PDF con un’espressione regolare (Regex)
Puoi anche utilizzare le espressioni regolari per trovare e sostituire le occorrenze di testo che corrispondono a un modello particolare. Per questo, devi solo fornire un’espressione regolare invece della semplice frase di ricerca e utilizzare TextSearchOptions. Di seguito sono riportati i passaggi per farlo.
- Usa la classe Document per caricare il documento PDF usando il suo percorso.
- Crea un’istanza della classe TextFragmentAbsorber e fornisci la frase di ricerca al suo costruttore.
- Crea un’istanza della classe TextSearchOptions e passa true al suo costruttore per abilitare la ricerca basata su espressioni regolari.
- Assegna l’oggetto TextSearchOptions alla proprietà TextFragmentAbsorber.TextSearchOptions.
- Accetta l’assorbitore di testo per la pagina desiderata utilizzando Document.Pages[0].Accetta(TextFragmentAbsorber).
- Definisci la regione della pagina usando la classe Rectangle.
- Scorri la raccolta TextFragmentAbsorber.TextFragments e sostituisci il testo in ogni frammento.
- Salva il documento PDF aggiornato utilizzando il metodo Document.Save(String).
L’esempio di codice seguente mostra come trovare e sostituire il testo in un PDF usando un’espressione regolare usando C#.
// Apri documento
Document pdfDocument = new Document("Document.pdf");
// Crea un oggetto TextAbsorber per trovare tutte le frasi che corrispondono all'espressione regolare
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // Like 1999-2000
// Imposta l'opzione di ricerca del testo per specificare l'utilizzo delle espressioni regolari
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.TextSearchOptions = textSearchOptions;
// Accetta l'assorbitore per una singola pagina
pdfDocument.Pages[1].Accept(textFragmentAbsorber);
// Ottieni i frammenti di testo estratti
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;
// Passa attraverso i frammenti
foreach (TextFragment textFragment in textFragmentCollection)
{
// Aggiorna testo e altre proprietà
textFragment.Text = "New Phrase";
// Imposta su un'istanza di un oggetto.
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);
}
// Salva PDF
pdfDocument.Save("output.pdf");
Conclusione
L’automazione PDF è ampiamente adottata in questi giorni per manipolare documenti PDF dall’interno delle applicazioni Web o desktop. Questo articolo ha trattato un’utile funzionalità di automazione PDF per trovare e sostituire il testo in PDF in C#. La guida passo passo e gli esempi di codice hanno mostrato come trovare e sostituire il testo in un intero PDF, in una determinata pagina in PDF o in un’area di pagina. Puoi esplorare funzionalità più avanzate utilizzando la documentazione dell’API.