Prezentáció információinak lekérése és frissítése Androidon
Áttekintés
Az Aspose.Slides képes azonosítani egy prezentáció formátumát, és beolvasni a dokumentum metaadatait anélkül, hogy teljes prezentációs objektummodellt hozna létre. Ez akkor hasznos, ha fájlokat kell osztályozni, leltárt felépíteni, vagy a tulajdonságokat ellenőrizni szeretné, mielőtt eldöntené, hogy betölti-e és feldolgozza-e a prezentáció tartalmát.
Ez a cikk bemutatja a könnyű ellenőrzést a PresentationFactory és a IPresentationInfo segítségével, valamint a célzott frissítéseket a IDocumentProperties használatával.
Ellenőrizze a prezentáció formátumát
Használja a PresentationFactory.getPresentationInfo a fájl ellenőrzéséhez anélkül, hogy Presentation példányt hozna létre. Az IPresentationInfo.getLoadFormat metódus jelzi a felismert formátumot, például PPTX, PPT vagy ODP.
import com.aspose.slides.IPresentationInfo;
import com.aspose.slides.LoadFormat;
import com.aspose.slides.PresentationFactory;
String[] fileNames = { "pres.pptx", "pres.ppt", "pres.odp" };
for (String fileName : fileNames) {
IPresentationInfo presentationInfo = PresentationFactory.getInstance().getPresentationInfo(fileName);
int loadFormat = presentationInfo.getLoadFormat();
String formatName = "Other (" + loadFormat + ")";
if (loadFormat == LoadFormat.Pptx) {
formatName = "PPTX";
} else if (loadFormat == LoadFormat.Ppt) {
formatName = "PPT";
} else if (loadFormat == LoadFormat.Odp) {
formatName = "ODP";
}
System.out.println(fileName + ": " + formatName);
}
Készítsen könnyű prezentációs leltárt
Amikor sok prezentációs fájlt dolgoz fel, előfordulhat, hogy egy kompakt leltárra van szüksége érvényesítéshez, indexeléshez vagy dokumentumkezelő rendszerhez. Ebben a helyzetben használja a PresentationFactory.getPresentationInfo metódust egy IPresentationInfo objektum előállításához, majd hívja a IPresentationInfo.readDocumentProperties metódust a dokumentum metaadatainak beolvasásához. Ez a megközelítés nem hoz létre Presentation példányt, és nem igényli a teljes prezentációs objektummodell bejárását.
Az IDocumentProperties által nyújtott kiterjesztett tulajdonságok a következő leltárértékeket biztosítják:
| Módszer | Leltár értéke |
|---|---|
| getSlides | Az összes dia száma. |
| getHiddenSlides | A rejtett diák száma. |
| getNotes | Azoknak a diákoknak a száma, amelyek tartalmaznak jegyzeteket. |
| getParagraphs | Az összes bekezdés száma, ha elérhető. |
| getWords | Az összes szó száma. |
| getMultimediaClips | Az összes hang- és videoklip száma. |
A következő példa beolvassa ezeket az értékeket anélkül, hogy Presentation objektumot hozna létre, és egy kompakt leltárt nyomtat ki. Emellett egyesíti a getHeadingPairs és a getTitlesOfParts hívásokat, hogy megjelenítse a tartalmi csoportokat, mint például a betűkészletek, témák és dia címek.
import com.aspose.slides.IDocumentProperties;
import com.aspose.slides.IHeadingPair;
import com.aspose.slides.IPresentationInfo;
import com.aspose.slides.LoadFormat;
import com.aspose.slides.PresentationFactory;
import java.nio.file.Paths;
String filePath = "sample.pptx";
IPresentationInfo presentationInfo = PresentationFactory.getInstance().getPresentationInfo(filePath);
IDocumentProperties documentProperties = presentationInfo.readDocumentProperties();
int loadFormat = presentationInfo.getLoadFormat();
String formatName = "Other (" + loadFormat + ")";
if (loadFormat == LoadFormat.Pptx) {
formatName = "PPTX";
} else if (loadFormat == LoadFormat.Ppt) {
formatName = "PPT";
} else if (loadFormat == LoadFormat.Odp) {
formatName = "ODP";
}
System.out.println("File: " + Paths.get(filePath).getFileName());
System.out.println("Format: " + formatName);
System.out.println("Title: " + documentProperties.getTitle());
System.out.println("Author: " + documentProperties.getAuthor());
System.out.println("Statistics:");
System.out.println(" Slides: " + documentProperties.getSlides());
System.out.println(" Hidden slides: " + documentProperties.getHiddenSlides());
System.out.println(" Slides with notes: " + documentProperties.getNotes());
System.out.println(" Paragraphs: " + documentProperties.getParagraphs());
System.out.println(" Words: " + documentProperties.getWords());
System.out.println(" Multimedia clips: " + documentProperties.getMultimediaClips());
IHeadingPair[] headingPairs = documentProperties.getHeadingPairs();
String[] titlesOfParts = documentProperties.getTitlesOfParts();
headingPairs = headingPairs != null ? headingPairs : new IHeadingPair[0];
titlesOfParts = titlesOfParts != null ? titlesOfParts : new String[0];
int partIndex = 0;
if (headingPairs.length == 0 || titlesOfParts.length == 0) {
System.out.println("Content groups: not available");
} else {
System.out.println("Content groups:");
for (IHeadingPair headingPair : headingPairs) {
System.out.println(" " + headingPair.getName() + " (" + headingPair.getCount() + ")");
for (int partOffset = 0; partOffset < headingPair.getCount() && partIndex < titlesOfParts.length; partOffset++) {
System.out.println(" - " + titlesOfParts[partIndex]);
partIndex++;
}
}
if (partIndex < titlesOfParts.length) {
System.out.println(" Other parts:");
while (partIndex < titlesOfParts.length) {
System.out.println(" - " + titlesOfParts[partIndex]);
partIndex++;
}
}
}
Minden IHeadingPair egy csoportnevet és a csoportban lévő elemek számát adja meg. Az IDocumentProperties.getTitlesOfParts egy lapos, rendezett tömböt ad vissza, ezért a fejlécpárok által meghatározott egymást követő címek számát kell felhasználni.
Tárolt metaadatok és formátumkorlátozások
Az IPresentationInfo.readDocumentProperties által visszaadott leltártulajdonságok tükrözik a forrásdokumentumban elérhető metaadatokat. Az Aspose.Slides nem tölti be és nem járja be a prezentációs objektummodellt, hogy újraszámolja ezeket az értékeket a hívás során. Hiányzó tulajdonságok alapértelmezett értékekkel jelennek meg, és a tárolt értékek elavulhatnak, ha az utoljára fájlt mentő alkalmazás nem frissítette a dokumentumtulajdonságokat.
- PPTX: A formátum kiterjesztett dokumentumtulajdonságokat biztosít a diák, jegyzetek, rejtett diák, bekezdések, szavak és multimédia számához, valamint a cípsor párokhoz és a részcímekhez. Az elérhetőség attól függ, mely tulajdonságokat írta a dokumentum előállítója.
- PPT: A bináris formátum képes tárolni a megfelelő dokumentum-összefoglaló tulajdonságokat. Ha egy tulajdonság hiányzik vagy nem frissítette a dokumentum előállítója, az Aspose.Slides a tárolt vagy alapértelmezett értéket adja vissza a diák alapján történő újraszámolás helyett.
- ODP: Az OpenDocument metaadatok általános dokumentumstatisztikákat biztosítanak, például oldal-, bekezdés- és szószámot, de ezek az értékek nem térnek le minden PowerPoint-specifikus kiterjesztett tulajdonságra. A rejtett dia, a jegyzetdia, a multimédia, a cípsor-pár és a részcím metaadatok előfordulhatnak, vagy hiányozhatnak, és a leltártulajdonságok alapértelmezett értékkel térhetnek vissza. Ne tekintsen egy null értéket vagy egy üres tömböt autoritatív bizonyítéknak arra, hogy a megfelelő tartalom hiányzik.
Használja a könnyű metaadat-megoldást leltárakhoz és előzetes ellenőrzésekhez. Töltse be a prezentációt, és ellenőrizze annak élő objektummodelljét, ha az eredménynek tükröznie kell a memóriában történt változásokat, vagy ha a tényleges prezentációs tartalmat kell ellenőrizni.
Frissítse a prezentáció tulajdonságait
Az IPresentationInfo.readDocumentProperties által visszaadott tulajdonságok szintén módosíthatók anélkül, hogy Presentation példányt hoznának létre. Alkalmazza a változtatásokat az IPresentationInfo.updateDocumentProperties segítségével, majd írja ki a kötött prezentációt az IPresentationInfo.writeBindedPresentation metódussal.

A következő példa módosítja a címet és az utolsó mentés időpontját, majd az eredményt egy új fájlba írja:
import com.aspose.slides.IDocumentProperties;
import com.aspose.slides.IPresentationInfo;
import com.aspose.slides.PresentationFactory;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Date;
String sourceFile = "sample.pptx";
String outputFile = "sample_with_updated_properties.pptx";
IPresentationInfo presentationInfo = PresentationFactory.getInstance().getPresentationInfo(sourceFile);
IDocumentProperties documentProperties = presentationInfo.readDocumentProperties();
documentProperties.setTitle("Quarterly sales report");
documentProperties.setLastSavedTime(new Date());
presentationInfo.updateDocumentProperties(documentProperties);
try (OutputStream outputStream = new FileOutputStream(outputFile)) {
presentationInfo.writeBindedPresentation(outputStream);
}

Hasznos hivatkozások
A kapcsolódó biztonsági ellenőrzések és védelmi beállítások tekintetében tekintse meg a következő cikkeket:
GYIK
Hogyan ellenőrizhetem, hogy a betűkészletek be vannak-e ágyazva, és melyek azok?
Töltse be a prezentációt, és használja a Presentation.getFontsManager metódust. Hívja a IFontsManager.getEmbeddedFonts metódust a beágyazott betűkészletekhez, valamint a IFontsManager.getFonts metódust a prezentáció által használt betűkészletekhez. Hasonlítsa össze a két eredményt annak meghatározásához, hogy mely betűkészletek szükségesek a megjelenítéshez, de nincsenek beágyazva.
Hogyan tudom gyorsan megmondani, hogy a fájl tartalmaz-e rejtett diát, és ha igen, hány darabot?
Amikor a tárolt dokumentum metaadatai elegendőek, olvassa a IDocumentProperties.getHiddenSlides értéket a PresentationFactory.getPresentationInfo és az IPresentationInfo.readDocumentProperties segítségével. Ez alkalmas egy könnyű leltárra. Ha a prezentáció memóriában módosult, a tárolt metaadatok hiányozhatnak vagy elavulhatnak, vagy ha élő értékeket akar ellenőrizni, járja be a Presentation.getSlides elemeit, és minden dia ISlide.getHidden metódusát vizsgálja.
Felderíthetem-e, hogy egyedi diamenet és tájolás van-e használatban, és eltérnek-e az alapértelmezettektől?
Igen. Töltse be a prezentációt, és hívja a Presentation.getSlideSize metódust. Használja az ISlideSize.getType, ISlideSize.getSize és ISlideSize.getOrientation metódusokat a jelenlegi beállítások összehasonlításához az elvárt előre beállított értékekkel és méretekkel.
Van gyors módja annak, hogy megtudjam, a diagramok külső adatforrásokra hivatkoznak-e?
Igen. Keresse meg minden Chart elemet, és hívja a IChartData.getDataSourceType metódust. Külső munkafüzet esetén hívja a IChartData.getExternalWorkbookPath metódust. Az adatforrás típusa és az útvonal jelzi a külső hivatkozást, de annak elérhetőségét külön erőforrás‑ellenőrzéssel kell megvizsgálni.
Hogyan értékelhetem a ‘nehéz’ diákokat, amelyek lassíthatják a renderelést vagy a PDF‑exportálást?
Nincs egyetlen összetettségi tulajdonság sem. Járja be a Presentation.getSlides elemeit, valamint minden dia IBaseSlide.getShapes gyűjteményét. Használja a forma‑számokat és a nagy képek, effektusok, animációk vagy multimédia jelenlétét szűrőjelzőként, és mérjen egy reprezentatív renderelést vagy exportálást, mielőtt a diát végleges teljesítménybottleneck‑nek tekintené.