Substituir Texto em Arquivo PDF

Substituir Texto em um Arquivo PDF Existente (facades)

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. Depois disso, 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.

package com.aspose.pdf.examples;

import com.aspose.pdf.TextState;
import com.aspose.pdf.facades.PdfContentEditor;
import com.aspose.pdf.facades.ReplaceTextStrategy;

public class PdfContentEditorText {

    private static String _dataDir = "/home/aspose/pdf-examples/Samples/";

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

        // salvar o arquivo de saída
        editor.save(_dataDir+"replaced_text_demo.pdf");
    }    

Confira como fica no documento original:

Substituir Texto

E confira o resultado após substituir o texto:

Resultado da substituição de Texto

No segundo exemplo, você verá como, além de substituir o texto, 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);

        // salvar o arquivo de saída
        editor.save(_dataDir+"replaced_text_demo.pdf");
    }    

Para possibilidades mais avançadas de trabalhar com nosso texto, usaremos o método TextState. Com este método, podemos deixar 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();
        textState.setFontSize(12);
        editor.replaceText("Value", "Label", textState);

        // salvar o arquivo de saída
        editor.save(_dataDir+"replaced_text_demo.pdf");
    }    

Caso você precise substituir todo o texto especificado no documento, use o seguinte trecho de código. Ou seja, 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++;

        System.out.println(count+" ocorrências foram substituídas.");

        // salvar o arquivo de saída
        editor.save(_dataDir + "PdfContentEditorDemo04.pdf");
    }

Substituir todo o Texto

O seguinte trecho de código 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++;
        System.out.println(count+" ocorrências foram substituídas.");

        // salvar o arquivo de saída
        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 replaceTextStrategy = new ReplaceTextStrategy();
        replaceTextStrategy.setRegularExpressionUsed(true);
        replaceTextStrategy.setReplaceScope(ReplaceTextStrategy.Scope.ReplaceAll);
        editor.setReplaceTextStrategy(replaceTextStrategy);
        
        editor.bindPdf(_dataDir + "sample.pdf");
        editor.replaceText("\\d{4}", "ABCDE");

        // salvar o arquivo de saída
        editor.save(_dataDir + "PdfContentEditorDemo06.pdf");
    }

}