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:
Y verifica el resultado después de reemplazar el texto:
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");
}
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");
}