Αποτροπή επεξεργασιών παρουσίασης με κλειδώματα σχήματος
Ιστορικό
Η κοινή χρήση του Aspose.Slides είναι η δημιουργία, η ενημέρωση και η αποθήκευση παρουσιάσεων Microsoft PowerPoint (PPTX) ως μέρος μιας αυτοματοποιημένης ροής εργασίας. Οι χρήστες εφαρμογών που χρησιμοποιούν το Aspose.Slides με αυτόν τον τρόπο έχουν πρόσβαση στις παραγόμενες παρουσιάσεις, επομένως η προστασία τους από επεξεργασία είναι μια συνήθης ανησυχία. Είναι σημαντικό οι αυτόματα δημιουργημένες παρουσιάσεις να διατηρούν την αρχική μορφοποίηση και το περιεχόμενό τους.
Αυτό το άρθρο εξηγεί πώς δομούνται οι παρουσιάσεις και οι διαφάνειες και πώς το Aspose.Slides for Java μπορεί να εφαρμόσει προστασία σε μια παρουσίαση και στη συνέχεια να την αφαιρέσει. Παρέχει στους προγραμματιστές έναν τρόπο ελέγχου του τρόπου χρήσης των παρουσιάσεων που οι εφαρμογές τους δημιουργούν.
Σύνθεση μιας Διαφάνειας
Μια διαφάνεια παρουσίασης αποτελείται από στοιχεία όπως αυτόματα σχήματα, πίνακες, αντικείμενα OLE, ομαδοποιημένα σχήματα, περιοχές εικόνας, περιοχές βίντεο, συνδέσμους και άλλα στοιχεία που χρησιμοποιούνται για την κατασκευή μιας παρουσίασης. Στο Aspose.Slides for Java, κάθε στοιχείο σε μια διαφάνεια αντιπροσωπεύεται από ένα αντικείμενο που υλοποιεί τη διεπαφή IShape ή κληρονομεί από μια κλάση που το κάνει.
Η δομή του PPTX είναι περίπλοκη, έτσι σε αντίθεση με το PPT, όπου μπορεί να χρησιμοποιηθεί ένα γενικό κλείδωμα για όλους τους τύπους σχημάτων, διαφορετικοί τύποι σχημάτων απαιτούν διαφορετικά κλειδώματα. Η διεπαφή IBaseShapeLock είναι η γενική κλάση κλειδώματος για το PPTX. Οι ακόλουθοι τύποι κλειδωμάτων υποστηρίζονται στο Aspose.Slides for Java για PPTX:
- IAutoShapeLock κλειδώνει τα αυτόματα σχήματα.
- IConnectorLock κλειδώνει τα σχήματα συνδέσεων.
- IGraphicalObjectLock κλειδώνει τα γραφικά αντικείμενα.
- IGroupShapeLock κλειδώνει τα ομαδοποιημένα σχήματα.
- IPictureFrameLock κλειδώνει τις περιοχές εικόνας.
Κάθε ενέργεια που εκτελείται σε όλα τα αντικείμενα σχήματος σε ένα αντικείμενο Presentation εφαρμόζεται σε ολόκληρη την παρουσίαση.
Εφαρμογή και Αφαίρεση Προστασίας
Η εφαρμογή προστασίας διασφαλίζει ότι μια παρουσίαση δεν μπορεί να επεξεργαστεί. Είναι μια χρήσιμη τεχνική για την προστασία του περιεχομένου της παρουσίασης.
Εφαρμογή Προστασίας σε Σχήματα PPTX
Το Aspose.Slides for Java παρέχει τη διεπαφή IShape για εργασία με σχήματα σε μια διαφάνεια.
Όπως αναφέρθηκε προηγουμένως, κάθε κλάση σχήματος διαθέτει μια σχετική κλάση κλειδώματος σχήματος για προστασία. Αυτό το άρθρο εστιάζει στα κλειδώματα NoSelect, NoMove και NoResize. Αυτά τα κλειδώματα εξασφαλίζουν ότι τα σχήματα δεν μπορούν να επιλεγούν (μέσω κλικ του ποντικιού ή άλλων μεθόδων επιλογής) και ότι δεν μπορούν να μετακινηθούν ή να αλλάξουν μέγεθος.
Το παρακάτω δείγμα κώδικα εφαρμόζει προστασία σε όλους τους τύπους σχημάτων σε μια παρουσίαση.
// Δημιουργία της κλάσης Presentation που αντιπροσωπεύει ένα αρχείο PPTX.
Presentation presentation = new Presentation("Sample.pptx");
// Διέλευση όλων των διαφανειών στην παρουσίαση.
for (ISlide slide : presentation.getSlides()) {
// Διέλευση όλων των σχημάτων στη διαφάνεια.
for (IShape shape : slide.getShapes()) {
if (shape instanceof IAutoShape) {
// Μετατροπή του σχήματος σε αυτόματο σχήμα και λήψη του κλειδώματος του σχήματος.
IAutoShape autoShape = (IAutoShape) shape;
IAutoShapeLock autoShapeLock = (IAutoShapeLock) autoShape.getShapeLock();
autoShapeLock.setPositionLocked(true);
autoShapeLock.setSelectLocked(true);
autoShapeLock.setSizeLocked(true);
} else if (shape instanceof IGroupShape) {
// Μετατροπή του σχήματος σε ομαδοποιημένο σχήμα και λήψη του κλειδώματος του σχήματος.
IGroupShape groupShape = (IGroupShape) shape;
IGroupShapeLock groupShapeLock = (IGroupShapeLock) groupShape.getShapeLock();
groupShapeLock.setGroupingLocked(true);
groupShapeLock.setPositionLocked(true);
groupShapeLock.setSelectLocked(true);
groupShapeLock.setSizeLocked(true);
} else if (shape instanceof IConnector) {
// Μετατροπή του σχήματος σε σχήμα σύνδεσμου και λήψη του κλειδώματος του σχήματος.
IConnector connectorShape = (IConnector) shape;
IConnectorLock connectorShapeLock = connectorShape.getShapeLock();
connectorShapeLock.setPositionMove(true);
connectorShapeLock.setSelectLocked(true);
connectorShapeLock.setSizeLocked(true);
} else if (shape instanceof IPictureFrame) {
// Μετατροπή του σχήματος σε πλαίσιο εικόνας και λήψη του κλειδώματος του σχήματος.
IPictureFrame pictureFrame = (IPictureFrame) shape;
IPictureFrameLock pictureFrameLock = (IPictureFrameLock) pictureFrame.getShapeLock();
pictureFrameLock.setPositionLocked(true);
pictureFrameLock.setSelectLocked(true);
pictureFrameLock.setSizeLocked(true);
}
}
}
// Αποθήκευση του αρχείου παρουσίασης.
presentation.save("ProtectedSample.pptx", SaveFormat.Pptx);
presentation.dispose();
Αφαίρεση Προστασίας
Για να ξεκλειδώσετε ένα σχήμα, ορίστε την τιμή του εφαρμόζουσας κλειδαριάς σε false. Το παρακάτω δείγμα κώδικα δείχνει πώς να ξεκλειδώσετε σχήματα σε μια κλειδωμένη παρουσίαση.
// Δημιουργία της κλάσης Presentation που αντιπροσωπεύει ένα αρχείο PPTX.
Presentation presentation = new Presentation("ProtectedSample.pptx");
// Διέλευση όλων των διαφανειών στην παρουσίαση.
for (ISlide slide : presentation.getSlides()) {
// Διέλευση όλων των σχημάτων στη διαφάνεια.
for (IShape shape : slide.getShapes()) {
if (shape instanceof IAutoShape) {
// Μετατροπή του σχήματος σε αυτόματο σχήμα και λήψη του κλειδώματος του σχήματος.
IAutoShape autoShape = (IAutoShape) shape;
IAutoShapeLock autoShapeLock = (IAutoShapeLock) autoShape.getShapeLock();
autoShapeLock.setPositionLocked(false);
autoShapeLock.setSelectLocked(false);
autoShapeLock.setSizeLocked(false);
} else if (shape instanceof IGroupShape) {
// Μετατροπή του σχήματος σε ομαδοποιημένο σχήμα και λήψη του κλειδώματος του σχήματος.
IGroupShape groupShape = (IGroupShape) shape;
IGroupShapeLock groupShapeLock = (IGroupShapeLock) groupShape.getShapeLock();
groupShapeLock.setGroupingLocked(false);
groupShapeLock.setPositionLocked(false);
groupShapeLock.setSelectLocked(false);
groupShapeLock.setSizeLocked(false);
} else if (shape instanceof IConnector) {
// Μετατροπή του σχήματος σε σχήμα συνδέσμου και λήψη του κλειδώματος του σχήματος.
IConnector connectorShape = (IConnector) shape;
IConnectorLock connectorShapeLock = connectorShape.getShapeLock();
connectorShapeLock.setPositionMove(false);
connectorShapeLock.setSelectLocked(false);
connectorShapeLock.setSizeLocked(false);
} else if (shape instanceof IPictureFrame) {
// Μετατροπή του σχήματος σε πλαίσιο εικόνας και λήψη του κλειδώματος του σχήματος.
IPictureFrame pictureFrame = (IPictureFrame) shape;
IPictureFrameLock pictureFrameLock = (IPictureFrameLock) pictureFrame.getShapeLock();
pictureFrameLock.setPositionLocked(false);
pictureFrameLock.setSelectLocked(false);
pictureFrameLock.setSizeLocked(false);
}
}
}
// Αποθήκευση του αρχείου παρουσίασης.
presentation.save("RemovedProtectionSample.pptx", SaveFormat.Pptx);
presentation.dispose();
Συμπέρασμα
Το Aspose.Slides προσφέρει πολλές επιλογές για την προστασία σχημάτων σε μια παρουσίαση. Μπορείτε να κλειδώσετε ένα μεμονωμένο σχήμα ή να διατρέξετε όλα τα σχήματα σε μια παρουσίαση και να κλειδώσετε καθένα για να ασφαλίσετε αποτελεσματικά ολόκληρο το αρχείο. Μπορείτε να αφαιρέσετε την προστασία ορίζοντας την τιμή του κλειδώματος σε false.
ΣΥΧΝΕΣ ΕΡΩΤΗΣΕΙΣ
Μπορώ να συνδυάσω τα κλειδώματα σχήματος και την προστασία με κωδικό σε μια ίδια παρουσίαση;
Ναι. Τα κλειδώματα περιορίζουν την επεξεργασία των αντικειμένων μέσα στο αρχείο, ενώ η προστασία με κωδικό ελέγχει την πρόσβαση στο άνοιγμα και/ή στην αποθήκευση αλλαγών. Αυτοί οι μηχανισμοί συμπληρώνουν ο ένας τον άλλο και λειτουργούν μαζί.
Μπορώ να περιορίσω την επεξεργασία σε συγκεκριμένες διαφάνειες χωρίς να επηρεάσω τις άλλες;
Ναι. Εφαρμόστε κλειδώματα στα σχήματα των επιλεγμένων διαφανειών· οι υπόλοιπες διαφάνειες θα παραμείνουν επεξεργάσιμες.
Ισχύουν τα κλειδώματα σχήματος για ομαδοποιημένα αντικείμενα και συνδέσμους;
Ναι. Υποστηρίζονται ειδικοί τύποι κλειδωμάτων για ομάδες, συνδέσμους, γραφικά αντικείμενα και άλλες κατηγορίες σχήματος.