Alacsony kódú bemutató műveletek Java nyelven
Áttekintés
A com.aspose.slides csomag statikus segédosztályokat biztosít a gyakori bemutató műveletekhez. Ezek a segédek a gyakran használt objektummodell munkafolyamatokat fókuszált metódusokba csomagolják, így fájlokat konvertálhat vagy egyesíthet, feldolgozhatja a bemutató elemeit, összegyűjtheti az alakzatokat, és kevesebb kóddal eltávolíthatja a fel nem használt tartalmat.
Az alacsony kódolású segédek leginkább akkor hasznosak, amikor a művelet egy teljes fájlra vagy bemutatóra vonatkozik, és az alapértelmezett munkafolyamat megfelel az igényeinek. Használja a teljes Aspose.Slides object model‑t, ha finomhangolt vezérlésre van szükség egyes diák, mesterlapok, elrendezések, alakzatok, exportbeállítások vagy a bemutató elemei közötti kapcsolatok felett.
Az alábbi táblázat összegzi a rendelkezésre álló segédeszközöket:
| Segédeszköz | Használat célja |
|---|---|
| Convert | Bemutató konvertálása egy másik formátumra közvetlen fájl‑fájl hívással. |
| Merger | Azonos formátumú teljes bemutató fájlok egyesítése. |
| ForEach | Művelet végrehajtása minden diára, alakzatra, bekezdésre vagy szövegrészre. |
| Collect | Alakzatok lekérése a teljes bemutatóból ismételt feldolgozás vagy elemzés céljából. |
| Compress | A fel nem használt mesterlapok és elrendezések eltávolítása, valamint a beágyazott betűtípusadatok csökkentése. |
Bemutató konvertálása
Használja a Convert.autoByExtension metódust, ha a kimeneti fájl kiterjesztése elegendő az exportformátum kiválasztásához. A metódus megnyitja a forrásbemutatót, a kimeneti útvonalból meghatározza a szükséges formátumot, és kiírja az eredményt.
import com.aspose.slides.Convert;
Convert.autoByExtension("input.pptx", "output.pdf");
A Convert osztály dedikált metódusokat is biztosít PDF, SVG, JPEG, PNG és TIFF kimenethez. Használja a teljes objektummodellt, ha a export előtt inspect vagy módosítani kell a bemutatót, vagy ha olyan exportopciót kell beállítani, amelyet a kiválasztott segédeszköz nem tesz elérhetővé. Lásd a Convert Presentation oldalt a formátumspecifikus munkafolyamatokért és beállításokért.
Bemutatók egyesítése
Használja a Merger.process metódust a teljes bemutató fájlok egyesítéséhez egy hívással. A bemeneti bemutatóknak azonos fájlformátummal kell rendelkezniük.
import com.aspose.slides.Merger;
String[] inputFiles = { "part-1.pptx", "part-2.pptx" };
Merger.process(inputFiles, "merged.pptx");
A segéd akkor megfelelő, ha minden diát egy eredményfájlba kell fűzni anélkül, hogy egyenként kiválasztanánk vagy újra leképeznénk őket. Használja a teljes objektummodellt, ha kiválasztott diákat kell egyesíteni, célmesterlapot vagy elrendezést kell alkalmazni, szakaszokat kell kifejezetten megőrizni, vagy különböző diaméreteket kell egységesíteni. Lásd a Merge Presentations oldalt ezekre a forgatókönyvekre.
Bemutató elemeinek bejárása
A ForEach osztály callback‑et hív meg minden kért típusú bemutatóelemre. Elkerüli a beágyazott gyűjteményciklusokat, és kényelmes a teljes bemutató szintű ellenőrzéshez vagy formázási módosításokhoz.
Az alábbi példa a ForEach.slide, ForEach.shape, ForEach.paragraph, és ForEach.portion használatával vizsgálja meg a megfelelő elemeket:
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
ForEach.slide(presentation, (slide, index) -> {
System.out.println(String.format("Slide %d: %d shapes", index, slide.getShapes().size()));
});
ForEach.shape(presentation, (shape, slide, index) -> {
System.out.println(String.format("Shape %d on %s: %s", index, slide.getClass().getSimpleName(), shape.getName()));
});
ForEach.paragraph(presentation, (paragraph, slide, index) -> {
System.out.println(String.format("Paragraph %d on %s: %s", index, slide.getClass().getSimpleName(), paragraph.getText()));
});
ForEach.portion(presentation, (portion, paragraph, slide, index) -> {
System.out.println(String.format("Portion %d on %s: %s", index, slide.getClass().getSimpleName(), portion.getText()));
});
} finally {
presentation.dispose();
}
Alapértelmezés szerint a teljes bemutató alakzat‑ és szövegbejárás magában foglalja a normál, mester és elrendezés diákat. Az includeNotes paraméterrel rendelkező túlterhelések a jegyzet diakat is feldolgozhatják. Használjon közvetlen gyűjteményciklusokat, ha a bejárás sorrendje, korai kilépés, szűrés a callback meghívása előtt vagy a részletes szülő‑gyermek vezérlés fontos.
Alakzatok összegyűjtése
Használja a Collect.shapes metódust, ha a teljes bemutatóban lévő összes alakzatra szüksége van egy gyűjteményre, ahelyett, hogy minden alakzatra külön callback‑et kapna. Ez hasznos, ha ugyanazt a halmazt többször kell szűrni, számolni vagy feldolgozni.
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
Iterable<Shape> shapes = Collect.shapes(presentation);
for (Shape shape : shapes) {
System.out.println(String.format("%s: %s", shape.getName(), shape.getClass().getSimpleName()));
}
} finally {
presentation.dispose();
}
Használja helyette a ForEach.shape metódust, ha minden alakzatot azonnal kezel, és nincs szükség a gyűjtött eredmény megőrzésére.
Bemutató tartalom tömörítése
A Compress osztály a következőkkel tud segíteni:
- Compress.removeUnusedLayoutSlides eltávolítja azokat az elrendezés diákat, amelyekre nincs normál dia hivatkozás.
- Compress.removeUnusedMasterSlides eltávolítja a már nem használt mesterlapokat.
- Compress.compressEmbeddedFonts eltávolítja a beágyazott betűtípusokból a nem használt karaktereket.
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
Compress.removeUnusedLayoutSlides(presentation);
Compress.removeUnusedMasterSlides(presentation);
Compress.compressEmbeddedFonts(presentation);
presentation.save("compressed.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Először távolítsa el a fel nem használt elrendezéseket, majd a fel nem használt mesterlapokat, így egy a layout takarítás után már fel nem hivatkozott mesterlap is eltávolítható. Mentse az optimalizált bemutatót egy új fájlba, ha később szüksége lehet az eredeti mesterlapokra, elrendezésekre vagy a teljes beágyazott betűtípusra. További részletekért lásd a Slide Master és az Embedded Font oldalakat.
GYIK
Mikor kellene az alacsony‑kódú API‑t használni a teljes objektummodell helyett?
Használja az alacsony kódolású segédeszközöket, ha egy szabványos művelet egy teljes fájlra vagy bemutatóra vonatkozik, és nem igényel részletes vezérlést az egyes elemek felett. Használja a teljes objektummodellt, ha konkrét diák kiválasztására, a mester‑ és elrendezéskapcsolatok irányítására, köztes állapot ellenőrzésére vagy olyan viselkedés konfigurálására van szükség, amelyet a segédeszköz nem biztosít.
Kombinálhat-e a Merger különböző fájlformátumú bemutatókat?
Nem. A Merger.process ugyanabban a formátumban lévő bemutatókat igényel. Először konvertálja a bemeneti fájlokat közös formátumba, például a Convert.autoByExtension metódussal, majd egyesítse a konvertált fájlokat.
Feldolgozza-e a ForEach a mester, layout és jegyzet diákat?
A ForEach.slide csak a normál bemutatódiákat járja be. A teljes bemutatóra kiterjedő ForEach.shape, ForEach.paragraph, és ForEach.portion műveletek alapértelmezés szerint a normál, mester és layout diákat is tartalmazzák. Az includeNotes paramétert true‑ra állítva a jegyzet diák is be lesz vonva.
Mi a különbség a ForEach.shape és a Collect.shapes között?
Használja a ForEach.shape metódust, ha minden alakzatot azonnal szeretne feldolgozni egy callback‑en keresztül. Használja a Collect.shapes metódust, ha egy iterálható eredményre van szüksége, amelyet megőrizhet, szűrhet, megszámolhat vagy többször bejárhat.
Mindig kisebbre csökkenti-e a Compress a bemutató fájlt?
Nem feltétlenül. Az eredmény attól függ, hogy a bemutató tartalmaz‑e fel nem használt elrendezéseket, fel nem használt mestereket vagy beágyazott betűtípusokat nem használt karakterekkel. Ha egyik sem áll fenn, a megfelelő Compress művelet nem feltétlenül csökkenti a fájlméretet.
Mentésre kerülnek-e automatikusan a ForEach vagy a Compress által végrehajtott módosítások?
Nem. Ezek a segédeszközök a memóriában lévő Presentation objektumot módosítják. A ForEach callback‑ben vagy a Compress futtatása után hívja meg a Presentation.save metódust a végeredmény kiírásához.