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