Temos o prazer de anunciar o lançamento do GroupDocs.Parser for Java 26.10, disponível a partir de outubro de 2026. Esta é uma versão de manutenção focada na correção: a pesquisa de texto funciona novamente para todas as sobrecargas, a extração da estrutura do documento lida com mais documentos Word, as informações de arquivo relatam a criptografia com precisão, e as coordenadas de imagens PDF agora correspondem ao restante da API. O licenciamento agora é tratado por GroupDocs.Foundation, e os componentes Aspose incluídos foram atualizados.
O que há de novo nesta versão
| Chave | Resumo | Categoria |
|---|---|---|
| PARSERJAVA-491 | Parser.search não lança mais NullPointerException quando a pesquisa não está limitada a uma página |
Correção |
| PARSERJAVA-513 | Parser.getStructure() funciona para documentos Word com tabelas no cabeçalho ou rodapé e retorna XML bem formado |
Correção |
| — | Parser.getFileInfo(String) relata arquivos DOCX, XLSX e PPTX protegidos por senha como criptografados |
Correção |
| — | FileInfo.isEncrypted() é true apenas para documentos PDF criptografados |
Correção |
| — | Os retângulos de imagens PDF são medidos a partir do topo da página, como as outras áreas da página | Correção |
| PARSERJAVA-154 | O licenciamento é realizado por GroupDocs.Foundation, o núcleo de licenciamento compartilhado pelos produtos GroupDocs | Atualização |
| PARSERJAVA-512 | Componentes Aspose incluídos atualizados | Atualização |
| PARSERJAVA-509 | POM publicado: nome do produto, uma breve descrição, <url>, <organization> e <scm> |
Atualização |
Alterações de comportamento a verificar antes de atualizar
Duas mudanças afetam o que o código existente observa:
- Coordenadas de imagens PDF. A coordenada superior dos retângulos de imagens PDF agora é medida a partir do topo da página. Se o seu código as convertia a partir da parte inferior da página, remova essa conversão.
- XML de estrutura de documentos Word. Palavras separadas por um caractere de quebra de Word agora são separadas por um espaço no XML de estrutura.
Correções
Pesquisa de texto não limitada a uma página
Desde a versão 25.5, toda chamada Parser.search que não estava limitada a uma página falhava com um NullPointerException. Isso afetava a sobrecarga search(String keyword), search(String keyword, SearchOptions options) com searchByPages definido como false (padrão), e pesquisas que solicitavam realces. Pesquisas com searchByPages definido como true não foram afetadas.
Na 26.10 essas chamadas retornam resultados de pesquisa novamente:
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());
}
}
Estrutura de documentos Word
Parser.getStructure() costumava lançar exceção em documentos de processamento de texto que continham uma tabela no cabeçalho ou rodapé, e podia retornar XML que não era analisado quando o texto do documento continha caracteres de controle. Ambos os problemas foram corrigidos:
- tabelas em cabeçalhos e rodapés são descritas por sua grade lógica: o índice da linha na tabela, o índice da célula na linha e extensões de 1;
- caracteres de quebra de Word (fim de célula, tabulação vertical, quebra de página, quebra de coluna) tornam-se um espaço, de modo que as palavras que eles separam não ficam mais juntas;
- caracteres que o XML 1.0 não permite são descartados;
- valores de atributos são escapados da mesma forma que o texto.
Informações de arquivo para documentos protegidos por senha
A sobrecarga Parser.getFileInfo(String filePath) não reconhecia arquivos DOCX, XLSX e PPTX protegidos por senha: retornava um tamanho de 0 e isEncrypted() definido como false para DOCX e XLSX, e nenhum tipo de arquivo para PPTX. Agora ela retorna o mesmo resultado da sobrecarga InputStream: o tamanho real do arquivo, isEncrypted() definido como true e FileType.Unknown (o formato de um documento criptografado não pode ser lido sem a senha).
Isso facilita a detecção de um arquivo protegido e sua abertura com uma senha:
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());
}
}
Criptografia de documentos PDF
FileInfo.isEncrypted() anteriormente retornava true para todos os documentos PDF. Agora retorna true apenas para documentos PDF que realmente estão criptografados.
Posição das imagens PDF
Os retângulos das imagens PDF retornados por Parser.getImages() eram medidos a partir da parte inferior da página, enquanto texto, tabelas e outras áreas da página são medidos a partir do topo. As imagens agora usam as mesmas coordenadas baseadas no topo, de modo que getImages(PageAreaOptions) encontra as imagens dentro do retângulo fornecido:
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());
}
}
Atualizações
Licenciamento no GroupDocs.Foundation
A validação de licença, licenciamento por consumo e o licenciamento dos componentes Aspose incluídos agora são realizados por GroupDocs.Foundation, o mesmo núcleo de licenciamento usado pelos outros produtos GroupDocs. A API de licenciamento permanece inalterada: License.setLicense, Metered.setMeteredKey, Metered.getConsumptionQuantity e Metered.getConsumptionCredit são chamados exatamente 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 incluídos
| 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 |
O produto ainda funciona em Java 8.
Metadados do artefato publicado
O POM publicado agora contém o nome GroupDocs.Parser for Java, uma breve descrição do que a biblioteca extrai e quais formatos ela lê, a página do produto como <url>, e declara <organization> e <scm>. Estas são as informações que índices de dependência como o MVNRepository exibem. Nenhum código, comportamento ou API foi alterado.
Como obter a atualização
Maven
Adicione o repositório GroupDocs e a dependência ao seu 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>
Download direto
Baixe o JAR da página de download do GroupDocs.Parser for Java 26.10.