Nos complace anunciar el lanzamiento de GroupDocs.Parser for Java 26.10, disponible a partir de octubre de 2026. Esta es una versión de mantenimiento centrada en la corrección: la búsqueda de texto vuelve a funcionar para todas las sobrecargas, la extracción de la estructura del documento maneja más documentos Word, la información del archivo informa la encriptación con precisión, y las coordenadas de imágenes PDF ahora coinciden con el resto de la API. La licencia ahora es gestionada por GroupDocs.Foundation, y los componentes Aspose incluidos se han actualizado.
Novedades en esta versión
| Clave | Resumen | Categoría |
|---|---|---|
| PARSERJAVA-491 | Parser.search ya no lanza NullPointerException cuando la búsqueda no está limitada a una página |
Corrección |
| PARSERJAVA-513 | Parser.getStructure() funciona con documentos Word que tienen tablas en encabezados o pies de página y devuelve XML bien formado |
Corrección |
| — | Parser.getFileInfo(String) informa los archivos DOCX, XLSX y PPTX protegidos con contraseña como encriptados |
Corrección |
| — | FileInfo.isEncrypted() es true solo para documentos PDF encriptados |
Corrección |
| — | Los rectángulos de imágenes PDF se miden desde la parte superior de la página, al igual que otras áreas de la página | Corrección |
| PARSERJAVA-154 | La licencia se realiza mediante GroupDocs.Foundation, el núcleo de licencias compartido por los productos GroupDocs | Actualización |
| PARSERJAVA-512 | Componentes Aspose incluidos actualizados | Actualización |
| PARSERJAVA-509 | POM publicado: nombre del producto, una breve descripción, <url>, <organization> y <scm> |
Actualización |
Cambios de comportamiento a revisar antes de actualizar
Dos cambios afectan lo que el código existente observa:
- Coordenadas de imágenes PDF. La coordenada superior de los rectángulos de imágenes PDF ahora se mide desde la parte superior de la página. Si su código la convertía desde la parte inferior de la página, elimine esa conversión.
- XML de estructura de documentos Word. Las palabras separadas por un carácter de salto de Word ahora están separadas por un espacio en el XML de estructura.
Correcciones
Búsqueda de texto no limitada a una página
Desde la versión 25.5, cada llamada a Parser.search que no estaba limitada a una página fallaba con un NullPointerException. Esto afectó a la sobrecarga search(String keyword), search(String keyword, SearchOptions options) con searchByPages establecido en false (el valor predeterminado), y búsquedas que solicitan resaltados. Las búsquedas con searchByPages establecido en true no se vieron afectadas.
En 26.10 estas llamadas devuelven resultados de búsqueda nuevamente:
try (Parser parser = new Parser("sample.pdf")) {
Iterable<SearchResult> results = parser.search("lorem");
if (results == null) {
return; // Search isn't supported for this document
}
for (SearchResult result : results) {
System.out.println(result.getPosition() + ": " + result.getText());
}
}
Estructura de documentos Word
Parser.getStructure() solía lanzar una excepción en documentos de procesamiento de texto que contenían una tabla en un encabezado o pie de página, y podía devolver XML que no se analizaba cuando el texto del documento contenía caracteres de control. Ambos problemas se han corregido:
- las tablas en encabezados y pies de página se describen por su cuadrícula lógica: el índice de fila en la tabla, el índice de celda en la fila y extensiones de 1;
- Los caracteres de salto de Word (fin de celda, tabulación vertical, salto de página, salto de columna) se convierten en un espacio, de modo que las palabras que separan ya no se juntan;
- los caracteres que XML 1.0 no permite se descartan;
- los valores de los atributos se escapan de la misma manera que el texto.
Información de archivo para documentos protegidos con contraseña
La sobrecarga Parser.getFileInfo(String filePath) no reconocía los archivos DOCX, XLSX y PPTX protegidos con contraseña: devolvía un tamaño de 0 y isEncrypted() establecido en false para DOCX y XLSX, y ningún tipo de archivo para PPTX. Ahora devuelve el mismo resultado que la sobrecarga InputStream: el tamaño real del archivo, isEncrypted() establecido en true y FileType.Unknown (el formato de un documento encriptado no puede leerse sin la contraseña).
Esto facilita detectar un archivo protegido y abrirlo con una contraseña:
FileInfo info = Parser.getFileInfo("protected.docx");
if (info.isEncrypted()) {
LoadOptions options = new LoadOptions("password");
try (Parser parser = new Parser("protected.docx", options);
TextReader reader = parser.getText()) {
System.out.println(reader.readToEnd());
}
}
Encriptación de documentos PDF
FileInfo.isEncrypted() anteriormente devolvía true para cada documento PDF. Ahora es true solo para los documentos PDF que están realmente encriptados.
Posición de imágenes PDF
Los rectángulos de imágenes PDF devueltos por Parser.getImages() se medían desde la parte inferior de la página, mientras que el texto, las tablas y otras áreas de la página se miden desde la parte superior. Ahora las imágenes usan las mismas coordenadas basadas en la parte superior, por lo que getImages(PageAreaOptions) encuentra las imágenes dentro del rectángulo dado:
try (Parser parser = new Parser("images.pdf")) {
// Images in the top-left 400 x 400 points of each page
PageAreaOptions options = new PageAreaOptions(new Rectangle(new Point(0, 0), new Size(400, 400)));
for (PageImageArea image : parser.getImages(options)) {
System.out.println(image.getPage().getIndex() + ": " + image.getRectangle());
}
}
Actualizaciones
Licenciamiento en GroupDocs.Foundation
La validación de licencias, el licenciamiento por consumo y el licenciamiento de los componentes Aspose incluidos ahora son realizados por GroupDocs.Foundation, el mismo núcleo de licencias usado por los demás productos GroupDocs. La API de licenciamiento no ha cambiado: License.setLicense, Metered.setMeteredKey, Metered.getConsumptionQuantity y Metered.getConsumptionCredit se llaman exactamente como antes.
License license = new License();
license.setLicense("GroupDocs.Parser.Java.lic");
try (Parser parser = new Parser("document.docx");
TextReader reader = parser.getText()) {
System.out.println(reader.readToEnd());
}
Componentes Aspose incluidos
| Componente | 26.9 | 26.10 |
|---|---|---|
| Aspose.Cells | 26.3 | 26.9 |
| Aspose.Email | 26.1 | 26.8 |
| Aspose.PDF | 26.2 | 26.8.1 |
| Aspose.Slides | 26.2 | 26.9 |
| Aspose.Words | 26.3 | 26.8 |
| Aspose.BarCode | 26.4 | 26.6 |
| Aspose.Imaging | 25.12 | 25.12 |
| Aspose.ZIP | 25.10 | 25.10 |
| Aspose.Note | 23.3 | 23.3 |
El producto sigue funcionando con Java 8.
Metadatos del artefacto publicado
El POM publicado ahora lleva el nombre GroupDocs.Parser for Java, una breve descripción de lo que la biblioteca extrae y qué formatos lee, la página del producto como <url>, y declara <organization> y <scm>. Esta es la información que índices de dependencias como MVNRepository muestran. No se cambió código, comportamiento ni API.
Cómo obtener la actualización
Maven
Agregue el repositorio GroupDocs y la dependencia a su pom.xml:
<repositories>
<repository>
<id>groupdocs-artifacts-repository</id>
<name>GroupDocs Artifacts Repository</name>
<url>https://releases.groupdocs.com/java/repo/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-parser</artifactId>
<version>26.10</version>
</dependency>
</dependencies>
Descarga directa
Descargue el JAR desde la página de descarga de GroupDocs.Parser for Java 26.10.