Prezentációs diák klónozása Pythonban
Bevezetés
Klónozás az a folyamat, amelynek során egy pontos másolat vagy replikát készítünk valamiről. Az Aspose.Slides for Python via Java lehetővé teszi, hogy bármely diát lemásoljunk vagy klónozzunk, majd a klónozott diát beillesszük a jelenlegi prezentációba vagy egy másik nyitott prezentációba. A diaklónozás folyamata egy új diát hoz létre, amelyet a fejlesztők módosíthatnak az eredeti dia megváltoztatása nélkül. Számos lehetséges módja van egy dia klónozásának:
- Klónozás a prezentáció végén.
- Klónozás egy másik pozícióban a prezentáción belül.
- Klónozás a végén egy másik prezentációban.
- Klónozás egy másik pozícióban egy másik prezentációban.
- Klónozás a saját fődiájával együtt egy másik prezentációba.
Aspose.Slides for Python via Java esetén a dia gyűjtemény (a Slide objektumok gyűjteménye), amelyet a Presentation objektum tesz elérhetővé, tartalmazza a addClone és a insertClone metódusokat a fenti diaklónozási típusok végrehajtásához.
Dia klónozása a prezentáció végén
Ha egy diát szeretne klónozni, és azt ugyanabban a prezentációfájlban a meglévő diák végén használni, használja a addClone metódust az alábbi lépések szerint:
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze be a SlideCollection objektumot a Presentation objektum által biztosított Slides gyűjtemény hivatkozásával.
- Hívja meg a SlideCollection objektum által biztosított addClone metódust, és adja meg a klónozandó diát paraméterként a addClone metódusnak.
- Írja ki a módosított prezentációfájlt.
A lenti példában egy diát (ami a prezentáció első pozíciójában – nulla indexen – helyezkedik) klónoztunk a prezentáció végére.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
# Példányosítsa a Presentation osztályt, amely egy prezentációs fájlt képvisel
presentation = Presentation("CloneWithinSamePresentationToEnd.pptx")
try:
# A kívánt dia klónozása a ugyanabban a prezentációban a diák gyűjteményének végére
slides = presentation.getSlides()
slides.addClone(presentation.getSlides().get_Item(0))
# A módosított prezentáció írása lemezre
presentation.save("Aspose_CloneWithinSamePresentationToEnd_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Dia klónozása egy másik pozícióba a prezentáción belül
Ha egy diát szeretne klónozni, és ugyanabban a prezentációfájlban, de egy másik pozícióban használni, használja a insertClone metódust:
- Hozzon létre egy példányt a Presentation osztályból.
- Kapjon hivatkozást a getSlides által visszaadott diagyűjteményre a Presentation objektumon.
- Hívja meg a SlideCollection objektum által biztosított insertClone metódust, és adja át a klónozandó diát a kívánt új pozíció indexével együtt paraméterként a insertClone metódusnak.
- Írja ki a módosított prezentációt PPTX fájlként.
A lenti példában egy diát (ami az index 1 – pozíció 2 – helyen van a prezentációban) klónoztunk az index 2 – pozíció 3 – helyre a prezentációban.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
# Példányosítsa a Presentation osztályt, amely egy prezentációs fájlt reprezentál
presentation = Presentation("CloneWithInSamePresentation.pptx")
try:
# Szerezze meg a prezentáció diáinak gyűjteményét
slides = presentation.getSlides()
# Klónozza a kívánt diát a megadott indexre ugyanabban a prezentációban
slides.insertClone(2, presentation.getSlides().get_Item(1))
# Írja a módosított prezentációt a lemezre
presentation.save("Aspose_CloneWithInSamePresentation_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Dia klónozása egy másik prezentáció végén
Ha egy diát egy prezentációból kell klónozni, és egy másik prezentációfájlban, a meglévő diák végén használni:
- Hozzon létre egy Presentation példányt, amely tartalmazza azt a prezentációt, amelyből a dia klónozva lesz.
- Hozzon létre egy Presentation példányt, amely tartalmazza a célprezentációt, amelyhez a diát hozzá kell adni.
- Szerezze be a SlideCollection objektumot a célprezentáció Presentation objektumán a getSlides által visszaadott diagyűjtemény hivatkozásával.
- Hívja meg a SlideCollection objektum által biztosított addClone metódust, és adja át a forrásprezentációból származó diát paraméterként a addClone metódusnak.
- Írja ki a módosított célprezentáció fájlt.
Az alábbi példában egy diát (a forrásprezentáció 0. indexéről) klónoztunk a célprezentáció végére.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
# A Presentation osztály példányosítása a forrás prezentációs fájl betöltéséhez
source_presentation = Presentation("CloneAtEndOfAnother.pptx")
try:
# A Presentation osztály példányosítása a cél PPTX-hez (ahová a diát klónozni kell)
destination_presentation = Presentation()
try:
# A kívánt dia klónozása a forrás prezentációból a célprezentáció diagyűjteményének végére
slides = destination_presentation.getSlides()
slides.addClone(source_presentation.getSlides().get_Item(0))
# A célprezentáció írása lemezre
destination_presentation.save("Aspose2_out.pptx", SaveFormat.Pptx)
finally:
destination_presentation.dispose()
finally:
source_presentation.dispose()
Dia klónozása egy másik pozícióba egy másik prezentációban
Ha egy diát egy prezentációból kell klónozni, és egy másik prezentációfájlban, egy meghatározott pozícióban használni:
- Hozzon létre egy Presentation példányt, amely tartalmazza a forrásprezentációt, amelyből a dia klónozva lesz.
- Hozzon létre egy Presentation példányt, amely tartalmazza azt a prezentációt, amelyhez a diát hozzá kell adni.
- Szerezze be a SlideCollection objektumot a célprezentáció Presentation objektumának a Slides gyűjteményére hivatkozva.
- Hívja meg a SlideCollection objektum által biztosított insertClone metódust, és adja át a forrásprezentációból származó diát a kívánt pozícióval együtt paraméterként az insertClone metódusnak.
- Írja ki a módosított célprezentáció fájlt.
A lenti példában egy diát (a forrásprezentáció nulla indexéről) klónoztunk az index 1 (pozíció 2) helyre a célprezentációban.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
# A Presentation osztály példányosítása a forrás prezentációs fájl betöltéséhez
source_presentation = Presentation("CloneAtEndOfAnother.pptx")
try:
# A Presentation osztály példányosítása a cél PPTX-hez (ahová a diát klónozni kell)
destination_presentation = Presentation()
try:
# Klónozza a kívánt diát a forrás prezentációból a célprezentáció megadott indexére
slides = destination_presentation.getSlides()
slides.insertClone(1, source_presentation.getSlides().get_Item(0))
# A célprezentáció írása lemezre
destination_presentation.save("Aspose2_out.pptx", SaveFormat.Pptx)
finally:
destination_presentation.dispose()
finally:
source_presentation.dispose()
Dia és annak fődiájának klónozása egy másik prezentációba
Ha egy diát a hozzá tartozó fődiájával kell klónozni egy prezentációból, és egy másik prezentációban használni, először a kívánt fődiát kell klónozni a forrásprezentációból a célprezentációba. Ezután a klónozott fődiát használja a dia klónozásakor. A addClone metódus a célprezentáció fődiáját várja, nem a forrásprezentációét. A dia fődiával való klónozásához kövesse az alábbi lépéseket:
- Hozzon létre egy Presentation példányt, amely tartalmazza a forrásprezentációt, amelyből a dia klónozva lesz.
- Hozzon létre egy Presentation példányt, amely tartalmazza a célprezentációt, amelyhez a diát klónozni kell.
- Férjen hozzá a klónozandó diához és annak fődiájához.
- Szerezze be a MasterSlideCollection objektumot a célprezentáció Presentation objektumának a Masters gyűjteményére hivatkozva.
- Hívja meg a MasterSlideCollection objektum által biztosított addClone metódust, és adja át a forrás PPTX-ből származó klónozandó fődiát paraméterként a addClone metódusnak.
- Szerezze be a SlideCollection objektumot a célprezentáció Presentation objektumának a Slides gyűjteményére hivatkozva.
- Hívja meg a SlideCollection objektum által biztosított addClone metódust, és adja át a forrásprezentációból származó klónozandó diát és a fődiát paraméterként a addClone metódusnak.
- Írja ki a módosított célprezentáció fájlt.
A lenti példában egy diát a saját fődiájával (a forrásprezentáció nulla indexén) klónoztunk a célprezentáció végére a forrásdia fődiájának használatával.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
# Példányosítsa a Presentation osztályt a forrás prezentációs fájl betöltéséhez
source_presentation = Presentation("CloneToAnotherPresentationWithMaster.pptx")
try:
# Példányosítsa a Presentation osztályt a célprezentációhoz (ahová a diát klónozni kell)
destination_presentation = Presentation()
try:
# Példányosítsa a diát a forrás prezentáció diagyűjteményéből, valamint
# Fődia
source_slide = source_presentation.getSlides().get_Item(0)
source_master = source_slide.getLayoutSlide().getMasterSlide()
# Klónozza a kívánt fődiát a forrás prezentációból a
# Célprezentáció master-gyűjteményébe
masters = destination_presentation.getMasters()
destination_master = masters.addClone(source_master)
# Klónozza a kívánt diát a forrás prezentációból a kívánt fődiával a
# célprezentáció diagyűjteményének végére
slides = destination_presentation.getSlides()
slides.addClone(source_slide, destination_master, True)
# Mentse a célprezentációt a lemezre
destination_presentation.save("CloneToAnotherPresentationWithMaster_out.pptx", SaveFormat.Pptx)
finally:
destination_presentation.dispose()
finally:
source_presentation.dispose()
Dia klónozása egy meghatározott szekció végén
Ha egy diát szeretne klónozni, és ugyanabban a prezentációfájlban, de egy másik szekcióban használni, akkor használja a addClone metódust, amelyet a SlideCollection osztály biztosít. Az Aspose.Slides for Python via Java lehetővé teszi egy dia klónozását az első szekcióból, majd a klónozott dia beillesztését a ugyanazon prezentáció második szekciójába.
Az alábbi kódrészlet megmutatja, hogyan klónozzon egy diát, és helyezze be a klónozott diát egy meghatározott szekcióba.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, ShapeType
presentation = Presentation()
try:
presentation.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.Rectangle, 200, 50, 300, 100)
presentation.getSections().addSection("Section 1", presentation.getSlides().get_Item(0))
destination_section = presentation.getSections().appendEmptySection("Section 2")
presentation.getSlides().addClone(presentation.getSlides().get_Item(0), destination_section)
# Mentse a célprezentációt a lemezre
presentation.save("CloneSlideIntoSpecifiedSection.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Győződjön meg a dia méretének egyezéséről
Dia klónozása során egy másik prezentációba győződjön meg arról, hogy a célprezentáció dia mérete megegyezik a forráséval. Ha a dia méretek eltérnek, az Aspose.Slides nem méretezi át automatikusan a klónozott alakzatokat – az eredeti koordináták és méretek megmaradnak, ami azt eredményezheti, hogy a tartalom eltolódik vagy a dia határain kívülre nyúlik.
A célprezentáció dia méretét a klónozás előtt beállíthatja, hogy megegyezzen a forráséval, a fődia és a dia klónozása előtt:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SlideSizeScaleType
source_presentation = Presentation("CloneToAnotherPresentationWithMaster.pptx")
try:
target_presentation = Presentation()
try:
source_size = source_presentation.getSlideSize().getSize()
target_presentation.getSlideSize().setSize(jpype.JFloat(source_size.getWidth()), jpype.JFloat(source_size.getHeight()), SlideSizeScaleType.DoNotScale)
finally:
target_presentation.dispose()
finally:
source_presentation.dispose()
Ezt a fődia és a dia klónozása előtt tegye meg.
GYIK
A hangjegyzetek és a recenziós megjegyzések is klónozódnak?
Igen. A jegyzetoldal és a recenziós megjegyzések benne vannak a klónban. Ha nem kívánja őket, távolítsa el őket a beillesztés után.
Hogyan kezelik a diagramokat és azok adatforrásait?
A diagram objektuma, formázása és beágyazott adatai másolásra kerülnek. Ha a diagram egy külső forráshoz (például egy OLE-beágyazott munkafüzethez) volt kapcsolva, ez a kapcsolat OLE objektumként megmarad. Fájlok közti áthelyezés után ellenőrizze az adatok elérhetőségét és a frissítési viselkedést.
Szabályozhatom a klón beszúrási pozícióját és szekcióit?
Igen. A klón beszúrható egy adott dia indexnél, és elhelyezhető egy kiválasztott szekcióba. Ha a cél szekció nem létezik, előbb hozza létre, majd helyezze át a diát oda.