Reemplazar Texto - Fachadas

Reemplazar Texto en un Archivo PDF Existente

Para reemplazar texto en un archivo PDF existente, necesita crear un objeto de la clase PdfContentEditor y enlazar un archivo PDF de entrada usando el método BindPdf. Después de eso, necesitas llamar al método ReplaceText. Necesitas guardar el archivo PDF actualizado usando el método Save de la clase PdfContentEditor. El siguiente fragmento de código te muestra cómo reemplazar texto en un archivo PDF existente.

public static void ReplaceText01()
{
    PdfContentEditor editor = new PdfContentEditor();
    editor.BindPdf(_dataDir + "sample.pdf");
    editor.ReplaceText("Value", "Label");

    // save the output file
    editor.Save(_dataDir + "PdfContentEditorDemo01.pdf");
    }

Revisa cómo se ve en el documento original:

Replace Text

Y verifica el resultado después de reemplazar el texto:

Result of replacing Text

En el segundo ejemplo, verás cómo, además de reemplazar el texto, también puedes aumentar o disminuir el tamaño de la fuente:

public static void ReplaceText02()
    {
        PdfContentEditor editor = new PdfContentEditor();
        editor.BindPdf(_dataDir + "sample.pdf");
        editor.ReplaceText("Value", "Label", 12);

        // guardar el archivo de salida
        editor.Save(_dataDir + "PdfContentEditorDemo02.pdf");
    }

Para posibilidades más avanzadas de trabajar con nuestro texto, utilizaremos el método TextState. Con este método, podemos hacer que el texto sea negrita, cursiva, coloreado, y así sucesivamente.

    public static void ReplaceText03()
    {
        PdfContentEditor editor = new PdfContentEditor();
        editor.BindPdf(_dataDir + "sample.pdf");
        TextState textState = new TextState
        {
            ForegroundColor = Color.Red,
            FontSize = 12,
        };
        editor.ReplaceText("Value", "Label", textState);

        // guardar el archivo de salida
        editor.Save(_dataDir + "PdfContentEditorDemo03.pdf");
    }

En caso de que necesites reemplazar todo el texto especificado en el documento, utiliza el siguiente fragmento de código. Es decir, la sustitución del texto se llevará a cabo dondequiera que se encuentre el texto especificado para la sustitución, y también contará el número de tales sustituciones.

public static void ReplaceText04()
    {
        PdfContentEditor editor = new PdfContentEditor();
        editor.BindPdf(_dataDir + "sample.pdf");
        int count = 0;
        while (editor.ReplaceText("Value", "Label")) count++;

        Console.WriteLine($"{count} occurrences have been replaced.");

        // save the output file
        editor.Save(_dataDir + "PdfContentEditorDemo04.pdf");
    }

Reemplazar todo el texto

El siguiente fragmento de código muestra cómo realizar todas las sustituciones de texto pero en una página específica de su documento.

public static void ReplaceText05()
    {
        PdfContentEditor editor = new PdfContentEditor();
        editor.BindPdf(_dataDir + "sample.pdf");
        int count = 0;
        while (editor.ReplaceText("9999", 2, "ABCDE")) count++;
        Console.WriteLine($"{count} occurrences have been replaced.");

        // save the output file
        editor.Save(_dataDir + "PdfContentEditorDemo05.pdf");
    }

En el siguiente fragmento de código, mostraremos cómo reemplazar, por ejemplo, un número dado con las letras que necesitamos.

   public static void ReplaceText06()
    {
        PdfContentEditor editor = new PdfContentEditor
        {
            ReplaceTextStrategy = new ReplaceTextStrategy
            {
                IsRegularExpressionUsed = true,
                ReplaceScope = ReplaceTextStrategy.Scope.ReplaceAll
            }
        };
        editor.BindPdf(_dataDir + "sample.pdf");
        editor.ReplaceText("\\d{4}", "ABCDE");
        // guardar el archivo de salida
        editor.Save(_dataDir + "PdfContentEditorDemo06.pdf");
    }