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
- Buscar y reemplazar texto en PDF usando Java
- Reemplazar texto en una página particular en PDF
- Reemplazar texto usando expresiones regulares
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.
- Cargue el archivo PDF usando la clase Document.
- Cree un objeto de la clase TextFragmentAbsorber e inicialícelo con el texto que desea buscar y reemplazar.
- Acepte el absorbente para las páginas en PDF utilizando el método Document.getPages().accept(TextFragmentAbsorber).
- Obtenga todas las apariciones del texto devuelto por TextFragmentAbsorber.getTextFragments() en un objeto TextFragmentCollection.
- Recorra cada TextFragment en el objeto TextFragmentCollection y reemplace el texto usando el método TextFragment.setText(String).
- Guarde el archivo PDF actualizado usando el método Document.save(String).
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.
- Cargue el archivo PDF usando la clase Document.
- Cree un objeto de la clase TextFragmentAbsorber e inicialícelo con el texto que desea buscar y reemplazar.
- Acepte el absorbedor para una página particular en PDF usando el método Document.getPages().get_Item(Int pageIndex).accept(TextFragmentAbsorber).
- Obtenga todas las apariciones del texto devuelto por TextFragmentAbsorber.getTextFragments() en el objeto TextFragmentCollection.
- Recorra cada TextFragment en el objeto TextFragmentCollection y reemplace el texto usando el método TextFragment.setText(String).
- Guarde el archivo PDF actualizado usando el método Document.save(String).
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.
- Cargue el archivo PDF usando la clase Document.
- Cree un objeto de la clase TextFragmentAbsorber e inicialícelo con la expresión regular que desea usar.
- Cree un objeto de la clase TextSearchOptions e inicialícelo con verdadero para habilitar la búsqueda basada en expresiones regulares.
- Configure las opciones usando el método TextFragmentAbsorber.setTextSearchOptions(TextSearchOptions).
- Acepte el absorbente para las páginas en PDF utilizando el método Document.getPages().accept(TextFragmentAbsorber).
- Obtenga todas las apariciones encontradas del texto devuelto por TextFragmentAbsorber.getTextFragments() en el objeto TextFragmentCollection.
- Recorra cada TextFragment en el objeto TextFragmentCollection y reemplace el texto usando el método TextFragment.setText(String).
- Guarde el archivo PDF actualizado usando el método Document.save(String).
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.