Prezentáció szerkesztésének korlátozása alakzatzárolásokkal Node.js-ben
Áttekintés
Az Aspose.Slides for Node.js via Java gyakori felhasználási módja, hogy PowerPoint (PPTX) prezentációkat hozzon létre, frissítsen és mentse egy automatizált munkafolyamat részeként. Amikor a felhasználók megkapják ezeket a prezentációkat, a formák módosításának korlátozása segíthet megőrizni a szándékolt elrendezést és tartalmat.
Ez a cikk bemutatja, hogyan szerveződnek a formák a diákon, és hogyan lehet alkalmazni és eltávolítani a formazárolásokat egy PPTX prezentációban. Ezek a zárolások lehetővé teszik, hogy korlátozzuk a specifikus szerkesztési műveleteket az egyes formákon.
Dia felépítése
Egy prezentációs dia olyan összetevőkből áll, mint az autoshape-ek, táblázatok, OLE-objektumok, csoportosított formák, képkeretek, videokeretek, csatlakozók és egyéb elemek, amelyekkel a prezentáció felépül. Az Aspose.Slides for Node.js via Java esetében a dia minden eleme egy olyan objektummal van reprezentálva, amely a Shape osztályból származik.
Különböző forma típusok különböző zárolási lehetőségeket kínálnak. A BaseShapeLock osztály a formazárolások alaposztálya. Az Aspose.Slides for Node.js via Java a következő zárolási osztályokat biztosítja:
- AutoShapeLock zárolja az autoshape-eket.
- ConnectorLock zárolja a csatlakozó formákat.
- GraphicalObjectLock zárolja a grafikus objektumokat.
- GroupShapeLock zárolja a csoportosított formákat.
- PictureFrameLock zárolja a képkereteket.
A zárolások alkalmazásához egy Presentation esetén iteráljunk végig a diákon, és állítsuk be a megfelelő zárolásokat minden támogatott formán.
Védelem alkalmazása és eltávolítása
A formazárolások korlátozzák az olyan műveleteket, mint a formák kiválasztása, mozgatása és átméretezése. Nem teszik a teljes prezentációt szerkeszthetetlenné.
Védelem alkalmazása PPTX formákra
Az Aspose.Slides for Node.js via Java a Shape osztályt biztosítja a diáikon található formákkal való munkához.
A példa meghívja a setSelectLocked, a setPositionLocked és a setSizeLocked metódusokat true értékkel az autoshape-eknél, a csoportosított formák, csatlakozók és képkeretek esetén pedig a megfelelő ekvivalens zárolásokat. A csatlakozók a setPositionMove metódust használják a mozgatáshoz; a csoportok a setGroupingLocked metódussal korlátozzák a csoportosítást.
A példa betölt egy meglévő PPTX prezentációt, ellenőrzi a formákat minden dia forma gyűjteményében, és egy másolatot ment el a beállított korlátozásokkal. A négy kezelt típuson kívüli formák változatlanul maradnak. A ciklus nem járja be a csoporton belüli gyermekformákat.
const aspose = { slides: require("aspose.slides.via.java") };
const java = require("java");
const presentation = new aspose.slides.Presentation("sample.pptx");
try {
for (let slideIndex = 0; slideIndex < presentation.getSlides().size(); slideIndex++) {
const slide = presentation.getSlides().get_Item(slideIndex);
for (let shapeIndex = 0; shapeIndex < slide.getShapes().size(); shapeIndex++) {
const shape = slide.getShapes().get_Item(shapeIndex);
if (java.instanceOf(shape, "com.aspose.slides.IAutoShape")) {
const autoShapeLock = shape.getShapeLock();
autoShapeLock.setPositionLocked(true);
autoShapeLock.setSelectLocked(true);
autoShapeLock.setSizeLocked(true);
} else if (java.instanceOf(shape, "com.aspose.slides.IGroupShape")) {
const groupShapeLock = shape.getShapeLock();
groupShapeLock.setGroupingLocked(true);
groupShapeLock.setPositionLocked(true);
groupShapeLock.setSelectLocked(true);
groupShapeLock.setSizeLocked(true);
} else if (java.instanceOf(shape, "com.aspose.slides.IConnector")) {
const connectorShapeLock = shape.getShapeLock();
connectorShapeLock.setPositionMove(true);
connectorShapeLock.setSelectLocked(true);
connectorShapeLock.setSizeLocked(true);
} else if (java.instanceOf(shape, "com.aspose.slides.IPictureFrame")) {
const pictureFrameLock = shape.getShapeLock();
pictureFrameLock.setPositionLocked(true);
pictureFrameLock.setSelectLocked(true);
pictureFrameLock.setSizeLocked(true);
}
}
}
presentation.save("ProtectedSample.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Védelem eltávolítása
A formazárolás eltávolításához állítsa az értékét false‑ra. A következő példa betölt egy prezentációt formazárolásokkal, és a AutoShapeLock, a GroupShapeLock, a ConnectorLock és a PictureFrameLock segítségével törli a kiválasztás, mozgatás és átméretezés korlátozásait. A csoportosítási korlátozást is eltávolítja a GroupShapeLock.setGroupingLocked false értékének átadásával, majd elment egy másolatot a prezentációról. A többi zárolási beállítás változatlan marad.
const aspose = { slides: require("aspose.slides.via.java") };
const java = require("java");
const presentation = new aspose.slides.Presentation("ProtectedSample.pptx");
try {
for (let slideIndex = 0; slideIndex < presentation.getSlides().size(); slideIndex++) {
const slide = presentation.getSlides().get_Item(slideIndex);
for (let shapeIndex = 0; shapeIndex < slide.getShapes().size(); shapeIndex++) {
const shape = slide.getShapes().get_Item(shapeIndex);
if (java.instanceOf(shape, "com.aspose.slides.IAutoShape")) {
const autoShapeLock = shape.getShapeLock();
autoShapeLock.setPositionLocked(false);
autoShapeLock.setSelectLocked(false);
autoShapeLock.setSizeLocked(false);
} else if (java.instanceOf(shape, "com.aspose.slides.IGroupShape")) {
const groupShapeLock = shape.getShapeLock();
groupShapeLock.setGroupingLocked(false);
groupShapeLock.setPositionLocked(false);
groupShapeLock.setSelectLocked(false);
groupShapeLock.setSizeLocked(false);
} else if (java.instanceOf(shape, "com.aspose.slides.IConnector")) {
const connectorShapeLock = shape.getShapeLock();
connectorShapeLock.setPositionMove(false);
connectorShapeLock.setSelectLocked(false);
connectorShapeLock.setSizeLocked(false);
} else if (java.instanceOf(shape, "com.aspose.slides.IPictureFrame")) {
const pictureFrameLock = shape.getShapeLock();
pictureFrameLock.setPositionLocked(false);
pictureFrameLock.setSelectLocked(false);
pictureFrameLock.setSizeLocked(false);
}
}
}
presentation.save("RemovedProtectionSample.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Következtetés
Az Aspose.Slides for Node.js via Java lehetővé teszi specifikus szerkesztési műveletek korlátozását egyedi formákon, vagy azonos korlátozások alkalmazását több dián is. Válassza ki az egyes forma típusok által támogatott zárolásokat, és állítsa az értéküket false‑ra, ha el kell távolítania ezeket a korlátozásokat.
GYIK
Kombinálhatom a formazárolásokat és a jelszóvédelmet egyetlen prezentációban?
Igen. A formazárolások specifikus szerkesztési műveleteket korlátoznak, míg a jelszóvédelem korlátozhatja a prezentáció megnyitását vagy módosítását. Mindkettő használható ugyanabban a fájlban.
Korlátozhatom a szerkesztést egyes diákon anélkül, hogy másokra hatással lenne?
Igen. Csak a kiválasztott diák formáin alkalmazzon zárolásokat. Ez nem változtatja meg a többi dia zárolási beállításait.
Hogyan alkalmazhatok zárolásokat egyéni formákra egy csoporton belül?
Iteráljon a csoport getShapes metódusa által visszaadott gyűjteményen, és alkalmazza a megfelelő zárolásokat minden gyermekformára. Ismételje meg ezt minden beágyazott csoport esetén. A fenti példák csak a dia forma gyűjteményét dolgozzák fel, ezért nem állítják be a zárolásokat az egyedi csoporttagokon.