Buscar y reemplazar texto en PDF Java

En varios casos, es posible que deba buscar y reemplazar un fragmento de texto en particular en los documentos PDF. Sin embargo, buscar y actualizar cada ocurrencia manualmente puede costarle más tiempo y esfuerzo. Para tales casos, la opción de buscar y reemplazar hace su vida más fácil. En este artículo, aprenderá a buscar y reemplazar texto en documentos PDF utilizando Java.

API de Java para buscar y reemplazar texto en PDF - Descarga gratuita

Aspose.PDF for Java está diseñado para generar y manipular archivos PDF desde aplicaciones Java. La API proporciona una amplia gama de funciones básicas y avanzadas de manipulación de PDF, incluida la búsqueda y el reemplazo de texto. Puede descargar la API o instalarla usando las siguientes configuraciones de Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>21.1</version>    
</dependency>

Buscar y reemplazar texto en PDF usando Java

Para reemplazar un texto en particular en PDF, primero obtendrá todos los fragmentos de texto que coincidan con la cadena de búsqueda. Una vez que los tenga, simplemente reemplace cada fragmento con texto actualizado uno por uno.

Los siguientes son los pasos para buscar y reemplazar texto en un archivo PDF usando Java.

El siguiente ejemplo de código muestra cómo buscar y reemplazar texto en PDF.

// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Abrir documento
Document pdfDocument = new Document("source.pdf");

// Cree un objeto TextAbsorber para encontrar todas las instancias de la frase de búsqueda de entrada
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");

// Aceptar el absorbedor para todas las páginas del documento
pdfDocument.getPages().accept(textFragmentAbsorber);

// Obtenga los fragmentos de texto extraídos en la colección
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Bucle a través de los fragmentos
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// Actualizar texto y otras propiedades
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// Guarde el archivo PDF actualizado
pdfDocument.save("Updated_Text.pdf");

Buscar y reemplazar texto en una página particular en PDF

En lugar de buscar y reemplazar texto en todo el PDF, puede especificar una sola página en la que desea reemplazar las apariciones de texto. En este caso, aceptará el TextFragmentAbsorber para una página en particular solo especificando el índice de la página.

Los siguientes son los pasos para buscar y reemplazar texto en una página particular en PDF en Java.

El siguiente ejemplo de código muestra cómo buscar y reemplazar texto en una página particular en PDF usando Java.

// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Abrir documento
Document pdfDocument = new Document("source.pdf");

// Cree un objeto TextAbsorber para encontrar todas las instancias de la frase de búsqueda de entrada
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");

// Aceptar el absorbedor para la primera página del documento
pdfDocument.getPages().get_Item(0).accept(textFragmentAbsorber);

// Obtenga los fragmentos de texto extraídos en la colección
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Bucle a través de los fragmentos
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// Actualizar texto y otras propiedades
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// Guarde el archivo PDF actualizado
pdfDocument.save("Updated_Text.pdf");

Buscar y reemplazar texto usando expresiones regulares en PDF

También puede especificar una expresión regular para buscar el texto que coincida con un patrón particular, como correos electrónicos, SSN, etc. Los siguientes son los pasos para definir y usar una expresión regular para buscar y reemplazar texto en PDF usando Java.

El siguiente ejemplo de código muestra cómo buscar y reemplazar texto en PDF usando una expresión regular.

// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Abrir documento
Document pdfDocument = new Document("input.pdf");

// Cree un objeto TextAbsorber para encontrar todas las instancias de la frase de búsqueda de entrada
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // like 1999-2000

// Establezca la opción de búsqueda de texto para habilitar el uso de expresiones regulares
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.setTextSearchOptions(textSearchOptions);

// Aceptar el absorbedor para todas las páginas del documento
pdfDocument.getPages().accept(textFragmentAbsorber);

// Obtenga los fragmentos de texto extraídos en la colección
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();

// Bucle a través de los fragmentos
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
	// Actualizar texto y otras propiedades
	textFragment.setText("New Pharase");
	textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
	textFragment.getTextState().setFontSize(22);
	textFragment.getTextState().setForegroundColor(Color.getBlue());
	textFragment.getTextState().setBackgroundColor(Color.getGray());
}

// Guarde el archivo PDF actualizado
pdfDocument.save("Updated_Text.pdf");

Obtenga una licencia de API gratuita

Puedes probar la API sin limitaciones de evaluación de forma gratuita. Obtenga una licencia temporal gratuita ahora.

Conclusión

En este artículo, aprendió cómo buscar y reemplazar texto en PDF usando Java. Además, ha visto cómo usar una expresión regular para buscar y reemplazar texto siguiendo un patrón particular. Puede explorar más sobre la API PDF de Java usando documentación.

Ver también