Αποθήκευση Παρουσιάσεων σε PHP
Επισκόπηση
Άνοιγμα Παρουσιάσεων σε PHP περιγράφει πώς να χρησιμοποιήσετε την κλάση Presentation για το άνοιγμα μιας παρουσίασης. Αυτό το άρθρο εξηγεί πώς να δημιουργήσετε και να αποθηκεύσετε παρουσιάσεις. Η κλάση Presentation περιέχει τα περιεχόμενα μιας παρουσίασης. Είτε δημιουργείτε μια παρουσίαση από το μηδέν είτε τροποποιείτε μια υπάρχουσα, θα θέλετε να την αποθηκεύσετε όταν τελειώσετε. Με το Aspose.Slides for PHP, μπορείτε να αποθηκεύσετε σε αρχείο ή ροή. Αυτό το άρθρο εξηγεί τους διαφορετικούς τρόπους αποθήκευσης μιας παρουσίασης.
Αποθήκευση Παρουσιάσεων σε Αρχεία
Αποθηκεύστε μια παρουσίαση σε αρχείο καλώντας τη μέθοδο save της κλάσης Presentation. Μεταβιβάστε το όνομα αρχείου και τη μορφή αποθήκευσης στη μέθοδο. Το παρακάτω παράδειγμα δείχνει πώς να αποθηκεύσετε μια παρουσίαση με Aspose.Slides.
// Δημιουργήστε το αντικείμενο Presentation που αντιπροσωπεύει ένα αρχείο παρουσίασης.
$presentation = new Presentation();
try {
// Εκτελέστε κάποια εργασία εδώ...
// Αποθηκεύστε την παρουσίαση σε αρχείο.
$presentation->save("Output.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Αποθήκευση Παρουσιάσεων σε Ροές
Μπορείτε να αποθηκεύσετε μια παρουσίαση σε ροή περνώντας μια έξοδο ροής στη μέθοδο save της κλάσης Presentation. Μια παρουσίαση μπορεί να γραφεί σε πολλούς τύπους ροών. Στο παρακάτω παράδειγμα, δημιουργούμε μια νέα παρουσίαση και την αποθηκεύουμε σε ροή αρχείου.
// Δημιουργήστε το αντικείμενο Presentation που αντιπροσωπεύει ένα αρχείο παρουσίασης.
$presentation = new Presentation();
try {
$fileStream = new Java("java.io.FileOutputStream", "Output.pptx");
try {
// Αποθηκεύστε την παρουσίαση στη ροή.
$presentation->save($fileStream, SaveFormat::Pptx);
} finally {
$fileStream->close();
}
} finally {
$presentation->dispose();
}
Αποθήκευση Παρουσιάσεων με Προκαθορισμένο Τύπο Προβολής
Το Aspose.Slides σάς επιτρέπει να ορίσετε την αρχική προβολή που χρησιμοποιεί το PowerPoint όταν ανοίγει η δημιουργημένη παρουσίαση μέσω της κλάσης ViewProperties. Χρησιμοποιήστε τη μέθοδο setLastView με μια τιμή από την απαρίθμηση ViewType.
$presentation = new Presentation();
try {
$presentation->getViewProperties()->setLastView(ViewType::SlideMasterView);
$presentation->save("SlideMasterView.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Αποθήκευση Παρουσιάσεων σε Απολύτο Μορφό Office Open XML
Το Aspose.Slides σάς επιτρέπει να αποθηκεύσετε μια παρουσίαση στο Απολύτο μορφό Office Open XML. Χρησιμοποιήστε την κλάση PptxOptions και ορίστε την ιδιότητα conformance κατά την αποθήκευση. Εάν ορίσετε το Conformance.Iso29500_2008_Strict, το αρχείο εξόδου αποθηκεύεται στο Απολύτο μορφό Office Open XML.
Το παρακάτω παράδειγμα δημιουργεί μια παρουσίαση και την αποθηκεύει στο Απολύτο μορφό Office Open XML.
$options = new PptxOptions();
$options->setConformance(Conformance::Iso29500_2008_Strict);
// Δημιουργήστε το αντικείμενο Presentation που αντιπροσωπεύει ένα αρχείο παρουσίασης.
$presentation = new Presentation();
try {
// Αποθηκεύστε την παρουσίαση σε Απολύτο μορφό Office Open XML.
$presentation->save("StrictOfficeOpenXml.pptx", SaveFormat::Pptx, $options);
} finally {
$presentation->dispose();
}
Αποθήκευση Παρουσιάσεων σε Μορφό Office Open XML σε Λειτουργία Zip64
Ένα αρχείο Office Open XML είναι ένα αρχείο ZIP που επιβάλλει όρια 4 GB (2^32 bytes) στο μη συμπιεσμένο μέγεθος οποιουδήποτε αρχείου, στο συμπιεσμένο μέγεθος οποιουδήποτε αρχείου και στο συνολικό μέγεθος του αρχείου, καθώς και περιορίζει τον αριθμό αρχείων σε 65 535 (2^16‑1). Οι επεκτάσεις μορφής ZIP64 αυξάνουν αυτά τα όρια στο 2^64.
Η μέθοδος PptxOptions.setZip64Mode σας επιτρέπει να επιλέξετε πότε να χρησιμοποιήσετε τις επεκτάσεις μορφής ZIP64 κατά την αποθήκευση ενός αρχείου Office Open XML.
Αυτή η μέθοδος μπορεί να χρησιμοποιηθεί με τις ακόλουθες λειτουργίες:
- IfNecessary χρησιμοποιεί τις επεκτάσεις ZIP64 μόνο εάν η παρουσίαση υπερβαίνει τα παραπάνω όρια. Αυτή είναι η προεπιλεγμένη λειτουργία.
- Never δεν χρησιμοποιεί ποτέ τις επεκτάσεις ZIP64.
- Always χρησιμοποιεί πάντα τις επεκτάσεις ZIP64.
Ο παρακάτω κώδικας δείχνει πώς να αποθηκεύσετε μια παρουσίαση ως αρχείο PPTX με ενεργοποιημένες τις επεκτάσεις μορφής ZIP64:
$pptxOptions = new PptxOptions();
$pptxOptions->setZip64Mode(Zip64Mode::Always);
$presentation = new Presentation("Sample.pptx");
try {
$presentation->save("OutputZip64.pptx", SaveFormat::Pptx, $pptxOptions);
} finally {
$presentation->dispose();
}
NOTE
Όταν αποθηκεύετε με Zip64Mode.Never, μια PptxException ρίχνεται εάν η παρουσίαση δεν μπορεί να αποθηκευτεί σε μορφή ZIP32.Αποθήκευση Παρουσιάσεων σε Μορφό Office Open XML με Επίπεδα Συμπίεσης
Κατά την εργασία με μεγάλες παρουσιάσεις, μπορείτε να ρυθμίσετε το επίπεδο συμπίεσης για να εξισορροπήσετε το μέγεθος του αρχείου και το χρόνο επεξεργασίας. Ανάλογα με τις απαιτήσεις σας, μπορεί να προτιμάτε ταχύτερη επεξεργασία ή μικρότερα αρχεία εξόδου.
Το Aspose.Slides παρέχει τη μέθοδο PptxOptions.setCompressionLevel, η οποία επιτρέπει τον καθορισμό του επιπέδου συμπίεσης που χρησιμοποιείται κατά την αποθήκευση μιας παρουσίασης σε μορφό Office Open XML.
Τα διαθέσιμα επίπεδα συμπίεσης είναι:
- None: Δεν εφαρμόζεται συμπίεση. Τα αρχεία αποθηκεύονται όπως είναι.
- Level1: Η πιο γρήγορη συμπίεση με το χαμηλότερο λόγο συμπίεσης.
- Level2: Ταχύτερη συμπίεση με ελαφρώς καλύτερο λόγο από το Level1.
- Level3: Παρέχει καλύτερη συμπίεση από το Level2 με μέτρια επίδραση στον χρόνο επεξεργασίας.
- Level4: Παρέχει καλύτερη συμπίεση από το Level3.
- Level5: Παρέχει βελτιωμένη συμπίεση σε σχέση με το Level4 με επιπλέον χρόνο επεξεργασίας.
- Level6: Πρότυπη συμπίεση που προσφέρει καλή ισορροπία μεταξύ ταχύτητας επεξεργασίας και μεγέθους αρχείου. Αυτό είναι το προεπιλεγμένο επίπεδο συμπίεσης.
- Level7: Παρέχει καλύτερη συμπίεση από το Level6 με πιο αργή επεξεργασία.
- Level8: Παρέχει καλύτερη συμπίεση από το Level7.
- Level9: Μέγιστη συμπίεση. Παράγει το μικρότερο μέγεθος αρχείου με κόστος του μεγαλύτερου χρόνου επεξεργασίας.
Το παρακάτω παράδειγμα δείχνει πώς να αποθηκεύσετε μια παρουσίαση ως αρχείο PPTX χωρίς συμπίεση:
$pptxOptions = new PptxOptions();
$pptxOptions->setCompressionLevel(CompressionLevel::None);
$presentation = new Presentation("Sample.pptx");
try {
$presentation->save("Sample-out.pptx", SaveFormat::Pptx, $pptxOptions);
} finally {
$presentation->dispose();
}
Αυτό το παράδειγμα δείχνει πώς να αποθηκεύσετε μια παρουσίαση ως αρχείο PPTX με μέγιστη συμπίεση:
$pptxOptions = new PptxOptions();
$pptxOptions->setCompressionLevel(CompressionLevel::Level9);
$presentation = new Presentation("Sample.pptx");
try {
$presentation->save("Sample-level9.pptx", SaveFormat::Pptx, $pptxOptions);
} finally {
$presentation->dispose();
}
Αποθήκευση Παρουσιάσεων χωρίς Ανανέωση Μικρογραφίας
Η μέθοδος PptxOptions.setRefreshThumbnail ελέγχει τη δημιουργία μικρογραφίας όταν αποθηκεύετε μια παρουσίαση σε PPTX:
- Εάν οριστεί σε
true, η μικρογραφία ανανεώνεται κατά την αποθήκευση. Αυτή είναι η προεπιλογή. - Εάν οριστεί σε
false, διατηρείται η τρέχουσα μικρογραφία. Εάν η παρουσίαση δεν έχει μικρογραφία, δεν δημιουργείται καμία.
Στον παρακάτω κώδικα, η παρουσίαση αποθηκεύεται σε PPTX χωρίς ανανέωση της μικρογραφίας.
$pptxOptions = new PptxOptions();
$pptxOptions->setRefreshThumbnail(false);
$presentation = new Presentation("Sample.pptx");
try {
$presentation->save("Output.pptx", SaveFormat::Pptx, $pptxOptions);
}
finally {
$presentation->dispose();
}
Info
Αυτή η επιλογή βοηθά στη μείωση του χρόνου που απαιτείται για την αποθήκευση μιας παρουσίασης σε μορφή PPTX.Αποθήκευση Ενημερώσεων Προόδου σε Ποσοστό
Η αναφορά προόδου αποθήκευσης διαμορφώνεται μέσω της μεθόδου setProgressCallback στην κλάση SaveOptions και στις υποκλάσεις της. Παρέχετε έναν διακομιστή Java που υλοποιεί τη διεπαφή IProgressCallback; κατά την εξαγωγή, η κλήση επιστρέφει περιοδικές ενημερώσεις σε ποσοστό.
Τα παρακάτω αποσπάσματα κώδικα δείχνουν πώς να χρησιμοποιήσετε το IProgressCallback.
class ExportProgressHandler {
function reporting($progressValue) {
// Χρησιμοποιήστε εδώ την τιμή του ποσοστού προόδου.
$progress = java("java.lang.Double")->valueOf($progressValue)->intValue();
echo($progress . "% of the file has been converted.");
}
}
$progressHandler = java_closure(new ExportProgressHandler(), null, java("com.aspose.slides.IProgressCallback"));
$saveOptions = new PdfOptions();
$saveOptions->setProgressCallback($progressHandler);
$presentation = new Presentation("Sample.pptx");
try {
$presentation->save("Output.pdf", SaveFormat::Pdf, $saveOptions);
} finally {
$presentation->dispose();
}
Info
Η Aspose έχει δημιουργήσει μια δωρεάν εφαρμογή PowerPoint Splitter χρησιμοποιώντας το δικό της API. Η εφαρμογή σάς επιτρέπει να χωρίσετε μια παρουσίαση σε πολλά αρχεία αποθηκεύοντας επιλεγμένες διαφάνειες ως νέα αρχεία PPTX ή PPT.Συχνές Ερωτήσεις
Υποστηρίζεται η «γρήγορη αποθήκευση» (αυξητική αποθήκευση) ώστε να γράφονται μόνο οι αλλαγές;
Όχι. Η αποθήκευση δημιουργεί το πλήρες αρχείο προορισμού κάθε φορά· η αυξητική «γρήγορη αποθήκευση» δεν υποστηρίζεται.
Είναι ασφαλής η αποθήκευση του ίδιου αντικειμένου Presentation από πολλαπλά νήματα;
Όχι. Ένα αντικείμενο Presentation δεν είναι ασφαλές για πολλαπλά νήματα· αποθηκεύστε το από ένα μόνο νήμα.
Τι συμβαίνει με τους υπερσυνδέσμους και τα εξωτερικά συνδεδεμένα αρχεία κατά την αποθήκευση;
Τα Hyperlinks διατηρούνται. Τα εξωτερικά συνδεδεμένα αρχεία (π.χ. βίντεο μέσω σχετικών διαδρομών) δεν αντιγράφονται αυτόματα· βεβαιωθείτε ότι οι αναφερόμενες διαδρομές παραμένουν προσβάσιμες.
Μπορώ να ορίσω/αποθηκεύσω μεταδεδομένα εγγράφου (Συγγραφέας, Τίτλος, Εταιρεία, Ημερομηνία);
Ναι. Τα κλασσικά document properties υποστηρίζονται και θα γραφτούν στο αρχείο κατά την αποθήκευση.