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:
E confira o resultado após substituir o 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");
}
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");
}
}