Siamo lieti di annunciare il rilascio di GroupDocs.Parser for Java 26.10, disponibile a partire da ottobre 2026. Si tratta di un rilascio di manutenzione incentrato sulla correttezza: la ricerca di testo funziona nuovamente per ogni overload, l’estrazione della struttura del documento gestisce più documenti Word, le informazioni sul file segnalano correttamente la crittografia e le coordinate delle immagini PDF ora corrispondono al resto dell’API. La licenza è ora gestita da GroupDocs.Foundation, e i componenti Aspose inclusi sono stati aggiornati.

Novità di questo rilascio

Chiave Riepilogo Categoria
PARSERJAVA-491 Parser.search non genera più NullPointerException quando la ricerca non è limitata a una pagina Correzione
PARSERJAVA-513 Parser.getStructure() funziona per documenti Word con tabelle nell’intestazione o nel piè di pagina e restituisce XML ben formato Correzione
— Parser.getFileInfo(String) segnala i file DOCX, XLSX e PPTX protetti da password come crittografati Correzione
— FileInfo.isEncrypted() è true solo per documenti PDF crittografati Correzione
— I rettangoli delle immagini PDF sono misurati dall’alto della pagina, come le altre aree della pagina Correzione
PARSERJAVA-154 La licenza è gestita da GroupDocs.Foundation, il nucleo di licenza condiviso dai prodotti GroupDocs Aggiornamento
PARSERJAVA-512 Componenti Aspose inclusi aggiornati Aggiornamento
PARSERJAVA-509 POM pubblicato: nome del prodotto, una breve descrizione, <url>, <organization> e <scm> Aggiornamento

Modifiche al comportamento da verificare prima dell’aggiornamento

Due modifiche influenzano ciò che il codice esistente osserva:

  1. Coordinate delle immagini PDF. La coordinata superiore dei rettangoli delle immagini PDF è ora misurata dall’alto della pagina. Se il tuo codice le convertiva dal basso della pagina, rimuovi tale conversione.
  2. XML della struttura dei documenti Word. Le parole separate da un carattere di interruzione Word sono ora separate da uno spazio nell’XML della struttura.

Correzioni

Ricerca di testo non limitata a una pagina

Dalla versione 25.5, ogni chiamata a Parser.search non limitata a una pagina falliva con un NullPointerException. Questo ha interessato l’overload search(String keyword), search(String keyword, SearchOptions options) con searchByPages impostato a false (il valore predefinito), e le ricerche che richiedono evidenziazioni. Le ricerche con searchByPages impostato a true non sono state interessate.

Nella 26.10 queste chiamate restituiscono nuovamente i risultati della ricerca:

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());
    }
}

Struttura del documento dei documenti Word

Parser.getStructure() sollevava un’eccezione su documenti di elaborazione testi che contengono una tabella nell’intestazione o nel piè di pagina, e poteva restituire XML non analizzabile quando il testo del documento conteneva caratteri di controllo. Entrambi i problemi sono stati risolti:

  • le tabelle nelle intestazioni e nei piè di pagina sono descritte dalla loro griglia logica: l’indice di riga nella tabella, l’indice di cella nella riga e span di 1;
  • i caratteri di interruzione Word (fine cella, tab verticale, interruzione di pagina, interruzione di colonna) diventano uno spazio, così le parole che separano non si uniscono più;
  • i caratteri non consentiti da XML 1.0 vengono eliminati;
  • i valori degli attributi sono escapati allo stesso modo del testo.

Informazioni sul file per documenti protetti da password

L’overload Parser.getFileInfo(String filePath) non riconosceva i file DOCX, XLSX e PPTX protetti da password: restituiva una dimensione 0 e isEncrypted() impostato a false per DOCX e XLSX, e nessun tipo di file per PPTX. Ora restituisce lo stesso risultato dell’overload InputStream: la dimensione reale del file, isEncrypted() impostato a true e FileType.Unknown (il formato di un documento crittografato non può essere letto senza la password).

Ciò rende più semplice rilevare un file protetto e aprirlo con una password:

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());
    }
}

Crittografia dei documenti PDF

FileInfo.isEncrypted() in precedenza restituiva true per ogni documento PDF. Ora è true solo per i documenti PDF effettivamente crittografati.

Posizione delle immagini PDF

I rettangoli delle immagini PDF restituiti da Parser.getImages() erano misurati dal basso della pagina, mentre testo, tabelle e altre aree della pagina sono misurate dall’alto. Ora le immagini usano le stesse coordinate basate sull’alto, così getImages(PageAreaOptions) trova le immagini all’interno del rettangolo specificato:

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());
    }
}

Aggiornamenti

Licenza su GroupDocs.Foundation

La convalida della licenza, la licenza a consumo e la licenza dei componenti Aspose inclusi sono ora gestite da GroupDocs.Foundation, lo stesso nucleo di licenza utilizzato dagli altri prodotti GroupDocs. L’API di licenza è invariata: License.setLicense, Metered.setMeteredKey, Metered.getConsumptionQuantity e Metered.getConsumptionCredit vengono chiamati esattamente come prima.

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());
}

Componenti Aspose inclusi

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

Il prodotto continua a funzionare su Java 8.

Metadati dell’artefatto pubblicato

Il POM pubblicato ora contiene il nome GroupDocs.Parser for Java, una breve descrizione di ciò che la libreria estrae e quali formati legge, la pagina del prodotto come <url>, e dichiara <organization> e <scm>. Queste sono le informazioni che indici di dipendenze come MVNRepository mostrano. Nessun codice, comportamento o API è stato modificato.

Come ottenere l’aggiornamento

Maven

Aggiungi il repository GroupDocs e la dipendenza al tuo 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 diretto

Scarica il JAR dalla pagina di download di GroupDocs.Parser for Java 26.10.

Risorse