Simpan Presentasi di Android
Gambaran Umum
Setelah Anda membuat presentasi atau membuka presentasi yang ada, gunakan metode Presentation.save untuk menulis hasilnya. Aspose.Slides untuk Android via Java dapat menyimpan presentasi ke file atau aliran dalam format PowerPoint, OpenDocument, PDF, dan format lainnya. Bagian berikut mencakup operasi penyimpanan standar dan opsi yang tersedia untuk output PPTX.
Simpan Presentasi ke File
Untuk menyimpan presentasi ke file, berikan jalur output dan nilai SaveFormat ke metode Presentation.save. Nilai format menentukan jenis file yang dibuat oleh Aspose.Slides.
Contoh berikut membuat presentasi dan menyimpannya sebagai file PPTX:
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;
Presentation presentation = new Presentation();
try {
// Tambahkan atau ubah konten presentasi di sini.
presentation.save("Output.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Simpan Presentasi dalam Format Aslinya
Untuk contoh deteksi file dan aliran, perilaku presentasi yang baru dibuat, dan perbedaan antara format sumber dan output, lihat Determine the Original Presentation Format.
Dalam aplikasi pemrosesan batch, format masukan mungkin tidak diketahui sebelumnya. Setelah memuat file, baca format aslinya dari metode IPresentation.getSourceFormat. Serahkan nilai SourceFormat yang dihasilkan ke SlideUtil.toSaveFormat untuk memperoleh nilai SaveFormat yang sesuai, lalu gunakan Presentation.save untuk menulis presentasi yang dimodifikasi.
Contoh lengkap berikut memproses setiap file dalam direktori masukan, memperbarui judulnya, dan menyimpannya ke direktori keluaran dalam format yang sama dengan saat dimuat:
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 memetakan PPT, PPTX, ODP, PPTM, PPSX, PPSM, POTX, POTM, PPS, POT, OTP, FODP, dan PowerPoint XML ke format penyimpanan presentasi yang bersesuaian. Ia hanya memetakan format sumber presentasi; tidak dimaksudkan untuk memilih format ekspor seperti PDF, HTML, TIFF, atau gambar. Menyerahkan nilai SourceFormat yang tidak didukung atau tidak valid menghasilkan IllegalArgumentException.
File PPT, PPS, dan POT lama menggunakan wadah biner yang sama. Ketika presentasi semacam itu dimuat dari aliran tanpa ekstensi file, file PPS atau POT dapat teridentifikasi sebagai PPT. Jika diperlukan mempertahankan subtipe lama ini, simpan nama file asli atau metadata format secara terpisah dan gunakan saat memilih nama file dan format keluaran.
Simpan Presentasi ke Aliran
Untuk menulis presentasi tanpa bergantung pada jalur file akhir, berikan aliran yang dapat ditulis dan nilai SaveFormat ke metode Presentation.save. Pendekatan ini berguna ketika output harus dikembalikan dari layanan web, disimpan dalam basis data, atau diproses dalam memori.
Contoh berikut menyimpan presentasi baru ke aliran file:
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();
}
Simpan Presentasi dengan Tipe Tampilan yang Ditentukan
Anda dapat menentukan tampilan di mana PowerPoint secara awal membuka presentasi yang disimpan. Gunakan metode ViewProperties.setLastView dengan nilai ViewType sebelum menyimpan.
Contoh berikut mengonfigurasi tampilan Slide Master sebagai tampilan awal:
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();
}
Simpan Presentasi dalam Format Office Open XML yang Ketat
Untuk membuat file PPTX yang mematuhi profil Strict dari Office Open XML, buat instance PptxOptions dan gunakan metode setConformance dengan Conformance.Iso29500_2008_Strict. Kemudian serahkan opsi tersebut ke metode Presentation.save.
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();
}
Simpan Presentasi dalam Format Office Open XML dalam Mode Zip64
Arsip ZIP standar membatasi ukuran terkompresi dan tidak terkompresi setiap entri, ukuran total arsip, dan jumlah entri. Karena file PPTX adalah arsip ZIP, presentasi yang sangat besar dapat melampaui batas tersebut. Ekstensi ZIP64 meningkatkan batas ukuran dan jumlah entri yang berlaku.
Gunakan metode PptxOptions.setZip64Mode untuk mengontrol apakah Aspose.Slides menulis ekstensi ZIP64:
- IfNecessary menggunakan ZIP64 hanya ketika presentasi melampaui batas ZIP standar. Ini adalah mode default.
- Never menonaktifkan ekstensi ZIP64.
- Always selalu menulis ekstensi ZIP64.
Contoh berikut selalu mengaktifkan ekstensi ZIP64 untuk presentasi keluaran:
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();
}
Warning
Jika Zip64Mode.Never digunakan dan presentasi tidak dapat muat dalam batas ZIP standar, operasi penyimpanan akan melempar PptxException.Simpan Presentasi dalam Format Office Open XML dengan Tingkat Kompresi
Untuk output PPTX, Anda dapat menyeimbangkan kecepatan penyimpanan dengan ukuran file dengan menggunakan metode PptxOptions.setCompressionLevel. Kelas CompressionLevel menyediakan nilai-nilai berikut:
- None menyimpan data tanpa kompresi.
- Level1 memberikan kompresi tercepat dan output terkompresi terbesar.
- Level2 hingga Level5 secara bertahap lebih mengutamakan output yang lebih kecil daripada kecepatan penyimpanan.
- Level6 menyeimbangkan kecepatan penyimpanan dan ukuran file. Ini adalah level default.
- Level7 dan Level8 lebih mengutamakan output yang lebih kecil daripada kecepatan penyimpanan.
- Level9 memberikan kompresi terkuat dan membutuhkan waktu pemrosesan paling lama.
Contoh berikut menyimpan presentasi tanpa kompresi:
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();
}
Contoh berikut menggunakan tingkat kompresi maksimum:
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();
}
Simpan Presentasi tanpa Menyegarkan Gambar Mini
Ketika presentasi disimpan sebagai PPTX, metode PptxOptions.setRefreshThumbnail mengontrol gambar mini dokumen:
truemenghasilkan kembali gambar mini selama operasi penyimpanan. Ini adalah nilai default.falsemempertahankan gambar mini yang ada. Jika presentasi tidak memiliki gambar mini, Aspose.Slides tidak akan membuatnya.
Contoh berikut menyimpan presentasi tanpa menyegarkan gambar mini-nya:
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();
}
Note
Menonaktifkan penyegaran gambar mini dapat mengurangi waktu yang diperlukan untuk menyimpan file PPTX.Pembaruan Progres Penyimpanan dalam Persentase
Untuk memantau operasi penyimpanan, implementasikan antarmuka IProgressCallback dan serahkan implementasinya ke metode ISaveOptions.setProgressCallback. Aspose.Slides kemudian memanggil metode IProgressCallback.reporting dengan nilai progres selama ekspor.
Contoh berikut melaporkan progres ekspor PDF ke konsol:
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();
}
Note
Aspose menyediakan PowerPoint Splitter gratis yang dibangun dengan API Aspose.Slides. Alat ini menyimpan slide terpilih dari sebuah presentasi sebagai file PPT atau PPTX terpisah.FAQ
Apakah Aspose.Slides mendukung penyimpanan inkremental atau “fast save”?
Tidak. Setiap operasi penyimpanan menulis file output lengkap bukan hanya memperbarui bagian yang berubah.
Dapatkah beberapa thread menyimpan instance Presentation yang sama?
Tidak. Instance Presentation tidak thread‑safe. Akses dan simpan setiap instance hanya dari satu thread pada satu waktu.
Apa yang terjadi pada hyperlink dan file yang terhubung secara eksternal ketika saya menyimpan sebuah presentasi?
Hyperlinks tetap berada dalam presentasi. Aspose.Slides tidak menyalin file yang terhubung secara eksternal, sehingga presentasi yang disimpan masih harus dapat mengakses lokasi mereka.
Dapatkah saya menyimpan metadata dokumen seperti penulis, judul, perusahaan, dan tanggal pembuatan?
Ya. Atur document properties yang sesuai sebelum menyimpan, dan Aspose.Slides akan menuliskannya ke file output.