Android'de Sunumları Kaydet

Genel Bakış

Bir sunum oluşturduktan veya var olan birini açtıktan, sonucu yazmak için Presentation.save yöntemini kullanın. Java üzerinden Aspose.Slides for Android, bir sunumu PowerPoint, OpenDocument, PDF ve diğer formatlarda dosya veya akışa kaydedebilir. Aşağıdaki bölümler standart kaydetme işlemlerini ve PPTX çıktısı için mevcut seçenekleri kapsar.

Dosyalara Sunum Kaydetme

Bir sunumu dosyaya kaydetmek için, çıktı yolunu ve bir SaveFormat değerini Presentation.save yöntemine gönderin. Format değeri, Aspose.Slides’in oluşturacağı dosya türünü belirler.

Aşağıdaki örnek bir sunum oluşturur ve onu PPTX dosyası olarak kaydeder:

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

Presentation presentation = new Presentation();
try {
    // Burada sunum içeriğini ekleyin veya değiştirin.
    presentation.save("Output.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Sunumları Orijinal Formatlarında Kaydetme

Dosya ve akış tespiti örnekleri, yeni oluşturulan sunumların davranışı ve kaynak ile çıktı formatları arasındaki ayrım için Determine the Original Presentation Format sayfasına bakın.

Bir toplu işleme uygulamasında, giriş formatı önceden bilinmeyebilir. Bir dosya yüklendikten sonra, orijinal formatını IPresentation.getSourceFormat yönteminden okuyun. Elde edilen SourceFormat değerini SlideUtil.toSaveFormat yöntemine geçirerek karşılık gelen SaveFormat değerini alın ve ardından Presentation.save yöntemiyle değiştirilmiş sunumu yazın.

Aşağıdaki tam örnek, giriş dizinindeki her dosyayı işler, başlığını günceller ve yüklendiği formatta çıkış dizinine kaydeder:

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 PPT, PPTX, ODP, PPTM, PPSX, PPSM, POTX, POTM, PPS, POT, OTP, FODP ve PowerPoint XML’i karşılık gelen sunum kaydetme formatlarına eşler. Yalnızca sunum kaynak formatlarını eşler; PDF, HTML, TIFF veya görseller gibi dışa aktarım formatlarını seçmek amacıyla kullanılmaz. Desteklenmeyen veya geçersiz bir SourceFormat değeri gönderildiğinde bir IllegalArgumentException ortaya çıkar.

Eski PPT, PPS ve POT dosyaları aynı ikili konteyneri kullanır. Böyle bir sunum dosya uzantısı olmadan bir akıştan yüklendiğinde, bir PPS veya POT dosyası PPT olarak tanımlanabilir. Bu eski alt tiplerin korunması gerekiyorsa, orijinal dosya adını veya format meta verisini ayrı olarak tutun ve çıktı dosya adı ve formatını seçerken kullanın.

Akışlara Sunum Kaydetme

Son bir dosya yoluna bağlı kalmadan bir sunumu yazmak için, yazılabilir bir akış ve bir SaveFormat değerini Presentation.save yöntemine gönderin. Bu yaklaşım, çıktının bir web hizmetinden döndürülmesi, bir veritabanında saklanması veya bellekte işlenmesi gerektiğinde faydalıdır.

Aşağıdaki örnek yeni bir sunumu dosya akışına kaydeder:

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

Önceden Tanımlı Görünüm Türü ile Sunum Kaydetme

PowerPoint’in kaydedilen bir sunumu ilk açtığı görünümü belirtebilirsiniz. Kaydetmeden önce bir [ViewType] değeriyle ViewProperties.setLastView yöntemini kullanın.

Aşağıdaki örnek, Slide Master görünümünü başlangıç görünümü olarak yapılandırır:

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

Sunumları Katı Office Open XML Formatında Kaydetme

Office Open XML’in Katı (Strict) profiline uyan bir PPTX dosyası oluşturmak için bir PptxOptions örneği oluşturun ve onun setConformance yöntemini Conformance.Iso29500_2008_Strict değeriyle kullanın. Ardından seçenekleri Presentation.save yöntemine aktarın.

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

Sunumları Office Open XML Formatında Zip64 Modunda Kaydetme

Standart bir ZIP arşivi, her girişin sıkıştırılmış ve sıkıştırılmamış boyutunu, toplam arşiv boyutunu ve giriş sayısını sınırlamaktadır. PPTX dosyası bir ZIP arşivi olduğundan, çok büyük bir sunum bu sınırlamaları aşabilir. ZIP64 uzantıları uygulanabilir boyut ve giriş sayısı sınırlarını artırır.

​PptxOptions.setZip64Mode yöntemini kullanarak Aspose.Slides’in ZIP64 uzantıları yazıp yazmayacağını kontrol edebilirsiniz:

  • IfNecessary yalnızca sunum standart ZIP sınırlamalarını aştığında ZIP64 kullanır. Bu, varsayılan moddur.
  • Never ZIP64 uzantılarını devre dışı bırakır.
  • Always her zaman ZIP64 uzantılarını yazar.

Aşağıdaki örnek, çıktı sunumu için ZIP64 uzantılarını her zaman etkinleştirir:

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

Sunumları Office Open XML Formatında Sıkıştırma Düzeyleriyle Kaydetme

PPTX çıktısı için, PptxOptions.setCompressionLevel yöntemini kullanarak kaydetme hızı ile dosya boyutu arasında denge kurabilirsiniz. CompressionLevel sınıfı şu değerleri sunar:

  • None verileri sıkıştırma olmadan depolar.
  • Level1 en hızlı sıkıştırmayı ve en büyük sıkıştırılmış çıktıyı sağlar.
  • Level2 ila Level5 arasındaki seviyeler, kaydetme hızından daha küçük çıktıyı tercih eder.
  • Level6 kaydetme hızı ile dosya boyutunu dengeleyerek varsayılan seviyedir.
  • Level7 ve Level8 daha da küçük çıktıyı, kaydetme hızından önce tercih eder.
  • Level9 en güçlü sıkıştırmayı sağlar ve en uzun işlem süresine ihtiyaç duyar.

Aşağıdaki örnek bir sunumu sıkıştırma olmadan kaydeder:

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

Aşağıdaki örnek maksimum sıkıştırma seviyesini kullanır:

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

Küçük Resmi Yenilemeden Sunum Kaydetme

Bir sunum PPTX olarak kaydedildiğinde, PptxOptions.setRefreshThumbnail yöntemi belge küçük resmini kontrol eder:

  • true kaydetme sırasında küçük resmi yeniden oluşturur. Bu varsayılan değerdir.
  • false mevcut küçük resmi korur. Sunumun küçük resmi yoksa, Aspose.Slides bir tane oluşturmaz.

Aşağıdaki örnek bir sunumu küçük resmini yenilemeden kaydeder:

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

Kaydetme İlerleme Güncellemelerini Yüzde Olarak Almak

Bir kaydetme işlemini izlemek için, IProgressCallback arayüzünü uygulayın ve bu uygulamayı ISaveOptions.setProgressCallback yöntemine iletin. Aspose.Slides, dışa aktarma sırasında ilerleme değerleriyle IProgressCallback.reporting yöntemini çağırır.

Aşağıdaki örnek bir PDF dışa aktarımının ilerlemesini konsola raporlar:

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

SSS

Aspose.Slides artımlı veya “hızlı kaydetme” özelliğini destekliyor mu?

Hayır. Her kaydetme işlemi yalnızca değişen kısımları güncellemek yerine tam bir çıktı dosyası yazar.

Birden çok iş parçacığı aynı Presentation örneğini kaydedebilir mi?

Hayır. Bir Presentation örneği iş parçacığı güvenli değildir. Her örüntüye aynı anda sadece bir iş parçacığından erişilip kaydedilmelidir.

Sunumu kaydettiğimde köprüler ve dışa bağlı dosyalar ne olur?

Hyperlinks sunumda kalır. Aspose.Slides dışarıdan bağlanan dosyaları kopyalamaz, bu nedenle kaydedilen sunumun bunların konumlarına hâlâ erişebilmesi gerekir.

Yazar, başlık, şirket ve oluşturulma tarihi gibi belge meta verilerini kaydedebilir miyim?

Evet. Kaydetmeden önce uygun document properties ayarlayın; Aspose.Slides bunları çıktı dosyasına yazar.