Substituir Texto - Facades

Substituir Texto em um Arquivo PDF Existente

Para substituir texto em um arquivo PDF existente, você precisa criar um objeto da classe PdfContentEditor e vincular um arquivo PDF de entrada usando o método BindPdf. Após isso, você precisa chamar o método ReplaceText. Você precisa salvar o arquivo PDF atualizado usando o método Save da classe PdfContentEditor. O trecho de código a seguir mostra como substituir texto em um arquivo 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");
    }

Veja como fica no documento original:

Replace Text

E veja o resultado após substituir o texto:

Result of replacing Text

No segundo exemplo, você verá como, além de substituir o texto, você também pode aumentar ou diminuir o tamanho da fonte:

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

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

Para possibilidades mais avançadas de trabalhar com nosso texto, usaremos o método TextState. Com este método, podemos tornar o texto em negrito, itálico, colorido, e assim por diante.

    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);

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

Caso você precise substituir todo o texto especificado no documento, use o seguinte trecho de código. Isso é, a substituição do texto ocorrerá sempre que o texto especificado para substituição for encontrado, e também contará o número de tais substituições.

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");
    }

Substituir todo o Texto

O trecho de código a seguir mostra como fazer todas as substituições de texto, mas em uma página específica do seu 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");
    }

No próximo trecho de código, mostraremos como substituir, por exemplo, um determinado número pelas letras que precisamos.

   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");
        // salvar o arquivo de saída
        editor.Save(_dataDir + "PdfContentEditorDemo06.pdf");
    }