C# trova e sostituisci testo in PDF

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# .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.

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.

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.

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.

Guarda anche