Bemutatók mentése Androidon

Áttekintés

Miután létrehoztál egy bemutatót vagy megnyitsz egy meglévőt, használd a Presentation.save metódust az eredmény írásához. Az Aspose.Slides for Android via Java képes egy bemutatót fájlba vagy adatfolyamba menteni PowerPoint, OpenDocument, PDF és egyéb formátumokban. A következő szakaszok a szabványos mentési műveleteket és a PPTX kimenethez elérhető beállításokat tárgyalják.

Bemutatók mentése fájlokba

A bemutató fájlba mentéséhez add meg a kimeneti útvonalat és egy SaveFormat értéket a Presentation.save metódusnak. A formátum értéke határozza meg, milyen típusú fájlt hoz létre az Aspose.Slides.

Az alábbi példa létrehoz egy bemutatót és PPTX fájlként menti el:

import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;

Presentation presentation = new Presentation();
try {
    // Itt adja hozzá vagy módosítsa a bemutató tartalmát.

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

Bemutatók mentése eredeti formátumban

A fájl- és adatfolyam-észlelési példákért, az újonnan létrehozott bemutatók viselkedéséért, valamint a forrás- és kimeneti formátumok megkülönböztetéséért lásd a Az eredeti bemutató formátum meghatározása oldalt.

Batch feldolgozó alkalmazásban a bemeneti formátum előre nem ismert lehet. Fájl betöltése után olvasd ki az eredeti formátumát az IPresentation.getSourceFormat metódussal. Add át a kapott SourceFormat értéket a SlideUtil.toSaveFormat metódusnak, hogy megkapd a megfelelő SaveFormat értéket, majd használd a Presentation.save metódust a módosított bemutató írásához.

Az alábbi teljes példa minden fájlt feldolgoz egy bemeneti könyvtárban, frissíti a címét, és a betöltött formátumban egy kimeneti könyvtárba menti:

import com.aspose.slides.Presentation;
import com.aspose.slides.SlideUtil;
import java.io.File;

File inputDirectory = new File("Input");
File outputDirectory = new File("Output");

if (!outputDirectory.exists() && !outputDirectory.mkdirs()) {
    System.err.println("Cannot create the output directory.");
}

File[] inputFiles = inputDirectory.listFiles(File::isFile);
if (inputFiles != null && outputDirectory.isDirectory()) {
    for (File inputFile : inputFiles) {
        try {
            Presentation presentation = new Presentation(inputFile.getPath());
            try {
                int saveFormat = SlideUtil.toSaveFormat(presentation.getSourceFormat());
                presentation.getDocumentProperties().setTitle("Processed by the batch application");

                File outputFile = new File(outputDirectory, inputFile.getName());
                presentation.save(outputFile.getPath(), saveFormat);
            } finally {
                presentation.dispose();
            }
        } catch (IllegalArgumentException exception) {
            System.err.println("Cannot map the source format of '" + inputFile.getPath() + "': " + exception.getMessage());
        } catch (Exception exception) {
            System.err.println("Cannot process '" + inputFile.getPath() + "': " + exception.getMessage());
        }
    }
}

SlideUtil.toSaveFormat a PPT, PPTX, ODP, PPTM, PPSX, PPSM, POTX, POTM, PPS, POT, OTP, FODP és PowerPoint XML formátumokat a megfelelő bemutató mentési formátumokra térképezi. Csak a bemutató forrásformátumokat képezi le; nem arra szolgál, hogy exportálási formátumokat, például PDF, HTML, TIFF vagy képek válasszon. Nem támogatott vagy érvénytelen SourceFormat érték átadása IllegalArgumentException-t eredményez.

A régi PPT, PPS és POT fájlok ugyanazt a bináris tárolót használják. Ha egy ilyen bemutatót kiterjesztés nélküli adatfolyamból töltünk be, egy PPS vagy POT fájl ezért PPT‑ként azonosítható. Ha ezeket az örökölt altípusokat meg kell őrizni, tartsd meg az eredeti fájlnevet vagy formátum metaadatot külön, és használd őket a kimeneti fájlnév és formátum kiválasztásakor.

Bemutatók mentése adatfolyamokba

A bemutató írásához anélkül, hogy végleges fájlútra támaszkodnál, adj meg egy írható adatfolyamot és egy SaveFormat értéket a Presentation.save metódusnak. Ez a megközelítés akkor hasznos, ha a kimenetet egy webszolgáltatásból kell visszaadni, adatbázisban kell tárolni, vagy memóriában kell feldolgozni.

import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;
import java.io.FileOutputStream;
import java.io.OutputStream;

Presentation presentation = new Presentation();
try {
    OutputStream outputStream = new FileOutputStream("Output.pptx");
    try {
        presentation.save(outputStream, SaveFormat.Pptx);
    } finally {
        outputStream.close();
    }
} finally {
    presentation.dispose();
}

Bemutatók mentése előre definiált nézet típussal

Megadhatod, hogy a PowerPoint milyen nézetben nyissa meg a mentett bemutatót. Használd a ViewProperties.setLastView metódust egy ViewType értékkel a mentés előtt.

import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;
import com.aspose.slides.ViewType;

Presentation presentation = new Presentation();
try {
    presentation.getViewProperties().setLastView(ViewType.SlideMasterView);
    presentation.save("SlideMasterView.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Bemutatók mentése a szigorú Office Open XML formátumban

A szigorú Office Open XML profilnak megfelelő PPTX fájl létrehozásához készíts egy PptxOptions példányt, és használd a setConformance metódust a Conformance.Iso29500_2008_Strict értékkel. Ezután add át az opciókat a Presentation.save metódusnak.

import com.aspose.slides.Conformance;
import com.aspose.slides.PptxOptions;
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;

PptxOptions options = new PptxOptions();
options.setConformance(Conformance.Iso29500_2008_Strict);

Presentation presentation = new Presentation();
try {
    presentation.save("StrictOfficeOpenXml.pptx", SaveFormat.Pptx, options);
} finally {
    presentation.dispose();
}

Bemutatók mentése Office Open XML formátumban Zip64 módban

A standard ZIP archívum korlátozza minden bejegyzés tömörített és tömörítetlen méretét, a teljes archívum méretét és a bejegyzések számát. Mivel a PPTX fájl ZIP archívum, egy nagyon nagy bemutató túllépheti ezeket a korlátokat. A ZIP64 kiterjesztések növelik a releváns méret- és számkorlátokat.

Használd a PptxOptions.setZip64Mode metódust a ZIP64 kiterjesztések írásának vezérlésére:

  • IfNecessary csak akkor használ ZIP64-et, ha a bemutató meghaladja a standard ZIP korlátokat. Ez az alapértelmezett mód.
  • Never letiltja a ZIP64 kiterjesztéseket.
  • Always mindig írja a ZIP64 kiterjesztéseket.

Az alábbi példa mindig engedélyezi a ZIP64 kiterjesztéseket a kimeneti bemutatóhoz:

import com.aspose.slides.PptxOptions;
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;
import com.aspose.slides.Zip64Mode;

Presentation presentation = new Presentation("Sample.pptx");
try {
    PptxOptions options = new PptxOptions();
    options.setZip64Mode(Zip64Mode.Always);

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

Bemutatók mentése Office Open XML formátumban tömörítési szintekkel

PPTX kimenet esetén a PptxOptions.setCompressionLevel metódussal egyensúlyozhatsz a mentési sebesség és a fájlméret között. A CompressionLevel osztály ezeket az értékeket kínálja:

  • None adatot tömörítés nélkül tárol.
  • Level1 a leggyorsabb tömörítést és a legnagyobb tömörített kimenetet biztosítja.
  • Level2‑től Level5 fokozatosan előnyben részesítik a kisebb kimenetet a mentési sebességgel szemben.
  • Level6 egyensúlyt teremt a mentési sebesség és a fájlméret között. Ez az alapértelmezett szint.
  • Level7 és Level8 tovább növelik a kisebb kimenet előnyben részesítését.
  • Level9 a legerősebb tömörítést biztosítja, de a legtöbb feldolgozási időt igényli.

Az alábbi példa tömörítés nélkül ment egy bemutatót:

import com.aspose.slides.CompressionLevel;
import com.aspose.slides.PptxOptions;
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;

Presentation presentation = new Presentation("Sample.pptx");
try {
    PptxOptions options = new PptxOptions();
    options.setCompressionLevel(CompressionLevel.None);

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

Az alábbi példa a maximális tömörítési szintet használja:

import com.aspose.slides.CompressionLevel;
import com.aspose.slides.PptxOptions;
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;

Presentation presentation = new Presentation("Sample.pptx");
try {
    PptxOptions options = new PptxOptions();
    options.setCompressionLevel(CompressionLevel.Level9);

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

Bemutatók mentése a bélyegkép frissítése nélkül

Amikor egy bemutatót PPTX‑ként mentünk, a PptxOptions.setRefreshThumbnail metódus szabályozza a dokumentum bélyegképét:

  • true újból generálja a bélyegképet a mentés során. Ez az alapértelmezett érték.
  • false megőrzi a meglévő bélyegképet. Ha a bemutatónak nincs bélyegképe, az Aspose.Slides nem hoz létre újat.

Az alábbi példa a bélyegkép frissítése nélkül ment egy bemutatót:

import com.aspose.slides.PptxOptions;
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;

Presentation presentation = new Presentation("Sample.pptx");
try {
    PptxOptions options = new PptxOptions();
    options.setRefreshThumbnail(false);

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

Mentés előrehaladásának frissítése százalékban

A mentési művelet figyeléséhez valósítsd meg az IProgressCallback interfészt, és add át a megvalósítást az ISaveOptions.setProgressCallback metódusnak. Az Aspose.Slides ezután az IProgressCallback.reporting metódust hívja meg a haladás értékével az exportálás során.

Az alábbi példa a PDF exportálás előrehaladását írja ki a konzolra:

import com.aspose.slides.IProgressCallback;
import com.aspose.slides.PdfOptions;
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;

class ExportProgressHandler implements IProgressCallback {
    public void reporting(double progressValue) {
        int progress = (int) progressValue;
        System.out.println(progress + "% of the file has been converted.");
    }
}

PdfOptions options = new PdfOptions();
options.setProgressCallback(new ExportProgressHandler());

Presentation presentation = new Presentation("Sample.pptx");
try {
    presentation.save("Output.pdf", SaveFormat.Pdf, options);
} finally {
    presentation.dispose();
}

GYIK

Támogatja-e az Aspose.Slides az inkrementális vagy „gyors mentés” funkciót?

Nem. Minden mentési művelet egy teljes kimeneti fájlt ír, a változtatott részek csak frissítése helyett.

Több szál mentheti ugyanazt a Presentation példányt?

Nem. A Presentation példány nem szálbiztonságos (/slides/hu/androidjava/multithreading/). Minden példányt egyszerre csak egy szál használhat.

Mi történik a hiperhivatkozásokkal és a külsőleg hivatkozott fájlokkal, amikor mentek egy bemutatót?

A Hiperhivatkozások a bemutatóban maradnak. Az Aspose.Slides nem másolja a külsőleg hivatkozott fájlokat, ezért a mentett bemutatónak továbbra is elérhetőnek kell maradnia ezekhez a helyekhez.

Menthetek dokumentummetaadatokat, például szerzőt, címet, céget és létrehozási dátumot?

Igen. Állítsd be a megfelelő dokumentumtulajdonságokat a mentés előtt, és az Aspose.Slides beírja őket a kimeneti fájlba.