Operazioni di presentazione a basso codice in Java

Panoramica

Il pacchetto com.aspose.slides fornisce classi di utilità statiche per operazioni comuni sulle presentazioni. questi helper avvolgono i flussi di lavoro più frequenti del modello a oggetti in metodi mirati, così è possibile convertire o unire file, elaborare elementi della presentazione, raccogliere forme e rimuovere contenuti inutilizzati con meno codice.

Gli helper a basso codice sono più utili quando l’operazione si applica a un intero file o a una presentazione e il flusso di lavoro predefinito soddisfa i requisiti. Usa il modello a oggetti completo di Aspose.Slides quando hai bisogno di un controllo granulare su singole diapositive, master, layout, forme, impostazioni di esportazione o relazioni tra gli elementi della presentazione.

La tabella seguente riassume gli helper disponibili:

Helper Per cosa usarlo
Convert Conversione di una presentazione in un altro formato con una chiamata file‑to‑file diretta.
Merger Unione di file di presentazione completi dello stesso formato.
ForEach Esecuzione di un’azione per ogni diapositiva, forma, paragrafo o porzione di testo.
Collect Recupero delle forme da tutta la presentazione per elaborazioni o analisi ripetute.
Compress Rimozione di master e layout inutilizzati e riduzione dei dati dei font incorporati.

Convertire una presentazione

Usa Convert.autoByExtension quando l’estensione del file di output è sufficiente a selezionare il formato di esportazione. il metodo apre la presentazione di origine, determina il formato richiesto dal percorso di output e scrive il risultato.

import com.aspose.slides.Convert;

Convert.autoByExtension("input.pptx", "output.pdf");

La classe Convert fornisce anche metodi dedicati per output PDF, SVG, JPEG, PNG e TIFF. Usa il modello a oggetti completo quando devi ispezionare o modificare la presentazione prima dell’esportazione o configurare un’opzione di esportazione non esposta dall’helper selezionato. Vedi Convert Presentation per flussi di lavoro e opzioni specifiche per formato.

Unire presentazioni

Usa Merger.process per combinare file di presentazione completi con una sola chiamata. Le presentazioni di input devono avere lo stesso formato di file.

import com.aspose.slides.Merger;

String[] inputFiles = { "part-1.pptx", "part-2.pptx" };
Merger.process(inputFiles, "merged.pptx");

L’helper è appropriato quando tutte le diapositive devono essere aggiunte a un unico risultato senza selezionarle o rimapparle singolarmente. Usa il modello a oggetti completo quando devi unire diapositive selezionate, applicare un master o un layout di destinazione, preservare sezioni in modo esplicito o riconciliare dimensioni di diapositiva diverse. Vedi Merge Presentations per questi scenari.

Iterare attraverso gli elementi della presentazione

La classe ForEach invoca un callback per ciascun tipo richiesto di elemento della presentazione. Evita loop nidificati di raccolte ed è comoda per ispezioni o modifiche di formattazione a livello di presentazione.

L’esempio seguente utilizza ForEach.slide, ForEach.shape, ForEach.paragraph e ForEach.portion per ispezionare gli elementi corrispondenti:

import com.aspose.slides.*;

Presentation presentation = new Presentation("input.pptx");
try {
    ForEach.slide(presentation, (slide, index) -> {
        System.out.println(String.format("Slide %d: %d shapes", index, slide.getShapes().size()));
    });

    ForEach.shape(presentation, (shape, slide, index) -> {
        System.out.println(String.format("Shape %d on %s: %s", index, slide.getClass().getSimpleName(), shape.getName()));
    });

    ForEach.paragraph(presentation, (paragraph, slide, index) -> {
        System.out.println(String.format("Paragraph %d on %s: %s", index, slide.getClass().getSimpleName(), paragraph.getText()));
    });

    ForEach.portion(presentation, (portion, paragraph, slide, index) -> {
        System.out.println(String.format("Portion %d on %s: %s", index, slide.getClass().getSimpleName(), portion.getText()));
    });
} finally {
    presentation.dispose();
}

Per impostazione predefinita, l’attraversamento di forme e testi a livello di presentazione include diapositive normali, master e layout. Le sovraccariche con un parametro includeNotes possono anche elaborare le diapositive delle note. Usa loop di raccolta diretti quando l’ordine di attraversamento, l’uscita anticipata, il filtraggio prima della chiamata al callback o il controllo dettagliato padre‑figlio sono importanti.

Raccogliere forme

Usa Collect.shapes quando ti serve una collezione di tutte le forme in una presentazione anziché un callback per ogni forma. Ciò è utile quando lo stesso insieme sarà filtrato, contato o elaborato più volte.

import com.aspose.slides.*;

Presentation presentation = new Presentation("input.pptx");
try {
    Iterable<Shape> shapes = Collect.shapes(presentation);

    for (Shape shape : shapes) {
        System.out.println(String.format("%s: %s", shape.getName(), shape.getClass().getSimpleName()));
    }
} finally {
    presentation.dispose();
}

Usa ForEach.shape invece quando ogni forma può essere gestita subito e non è necessario conservare il risultato raccolto.

Comprimere il contenuto della presentazione

La classe Compress può rimuovere elementi strutturali inutilizzati e ridurre i dati dei font incorporati:

import com.aspose.slides.*;

Presentation presentation = new Presentation("input.pptx");
try {
    Compress.removeUnusedLayoutSlides(presentation);
    Compress.removeUnusedMasterSlides(presentation);
    Compress.compressEmbeddedFonts(presentation);

    presentation.save("compressed.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Rimuovi prima i layout inutilizzati e poi i master, così un master che diventa non referenziato dopo la pulizia dei layout può essere rimosso. Salva la presentazione ottimizzata in un nuovo file se potresti aver bisogno in seguito dei master, dei layout o dei dati completi dei font incorporati originali. Per ulteriori dettagli, vedi Slide Master e Embedded Font.

FAQ

Quando dovrei usare l’API a basso codice invece del modello a oggetti completo?

Usa gli helper a basso codice quando un’operazione standard si applica a un file o a una presentazione completa e non richiede un controllo dettagliato sugli elementi individuali. Usa il modello a oggetti completo quando devi selezionare diapositive specifiche, controllare le relazioni tra master e layout, ispezionare lo stato intermedio o configurare comportamenti non esposti dall’helper.

Il Merger può combinare presentazioni in formati di file diversi?

No. Merger.process richiede che le presentazioni di input siano nello stesso formato. Converti prima i file di input in un formato comune, ad esempio con Convert.autoByExtension, quindi unisci i file convertiti.

ForEach elabora master, layout e diapositive delle note?

ForEach.slide itera solo le diapositive normali della presentazione. Le operazioni a livello di presentazione ForEach.shape, ForEach.paragraph e ForEach.portion includono diapositive normali, master e layout per impostazione predefinita. Usa le loro sovraccariche con includeNotes impostato a true per includere le diapositive delle note.

Qual è la differenza tra ForEach.shape e Collect.shapes?

Usa ForEach.shape per elaborare ogni forma immediatamente tramite un callback. Usa Collect.shapes quando ti serve un risultato iterabile che può essere conservato, filtrato, contato o attraversato più volte.

Compress rende sempre più piccolo il file della presentazione?

Non necessariamente. Il risultato dipende dal fatto che la presentazione contenga layout inutilizzati, master non usati o font incorporati con caratteri non utilizzati. Se nessuno di questi elementi è presente, le operazioni corrispondenti di Compress potrebbero non ridurre la dimensione del file.

Le modifiche apportate da ForEach o Compress vengono salvate automaticamente?

No. questi helper operano sull’oggetto Presentation caricato in memoria. Dopo aver modificato gli elementi in un callback di ForEach o aver eseguito Compress, chiama Presentation.save per scrivere il risultato.

Articoli correlati