Prezentáció-információk lekérése és frissítése Pythonban
Á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ó objektummodellt hozna létre. Ez akkor hasznos, amikor fájlokat kell osztályozni, leltárt készíteni vagy tulajdonságokat ellenőrizni szeretne, mielőtt eldöntené, hogy betölti és feldolgozza a prezentáció tartalmát.
Ez a cikk bemutatja a könnyű ellenőrzést a PresentationFactory és a PresentationInfo segítségével, valamint a célzott frissítéseket a DocumentProperties használatával.
Prezentáció formátumának ellenőrzése
Használja a PresentationFactory.get_presentation_info metódust egy fájl ellenőrzéséhez anélkül, hogy Presentation példányt hozna létre. A PresentationInfo.load_format tulajdonság jelzi a felismert formátumot, például PPTX, PPT vagy ODP.
import aspose.slides as slides
file_names = ["pres.pptx", "pres.ppt", "pres.odp"]
for file_name in file_names:
presentation_info = slides.PresentationFactory.instance.get_presentation_info(file_name)
print(f"{file_name}: {presentation_info.load_format}")
Könnyű prezentáció leltár létrehozása
Amikor sok prezentációfájlt dolgoz fel, szüksége lehet egy kompakt leltárra az ellenőrzéshez, indexeléshez vagy egy dokumentumkezelő rendszerhez. Ebben a helyzetben használja a PresentationFactory.get_presentation_info metódust, hogy egy PresentationInfo objektumot kapjon, majd hívja a PresentationInfo.read_document_properties 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ó objektummodell bejárását.
A DocumentProperties által kiadott kiterjesztett tulajdonságok a következő leltárértékeket biztosítják:
| Tulajdonság | Leltár érték |
|---|---|
| slides | A diák összes száma. |
| hidden_slides | Rejtett diák száma. |
| notes | Azon diák száma, amelyek jegyzetet tartalmaznak. |
| paragraphs | A bekezdések összes száma, ha elérhető. |
| words | A szavak összes száma. |
| multimedia_clips | Az audio- és videoklipek összes száma. |
Az alábbi példa ezeket az értékeket beolvassa anélkül, hogy Presentation objektumot hozna létre, és egy kompakt leltárt nyomtat ki. Emellett kombinálja a heading_pairs elemet a titles_of_parts elemmel, hogy megjelenítse a tartalmi csoportokat, például betűtípusok, témák és diacímek.
import os
import aspose.slides as slides
file_path = "sample.pptx"
presentation_info = slides.PresentationFactory.instance.get_presentation_info(file_path)
document_properties = presentation_info.read_document_properties()
print(f"File: {os.path.basename(file_path)}")
print(f"Format: {presentation_info.load_format}")
print(f"Title: {document_properties.title}")
print(f"Author: {document_properties.author}")
print("Statistics:")
print(f" Slides: {document_properties.slides}")
print(f" Hidden slides: {document_properties.hidden_slides}")
print(f" Slides with notes: {document_properties.notes}")
print(f" Paragraphs: {document_properties.paragraphs}")
print(f" Words: {document_properties.words}")
print(f" Multimedia clips: {document_properties.multimedia_clips}")
heading_pairs = document_properties.heading_pairs or []
titles_of_parts = document_properties.titles_of_parts or []
part_index = 0
if not heading_pairs or not titles_of_parts:
print("Content groups: not available")
else:
print("Content groups:")
for heading_pair in heading_pairs:
print(f" {heading_pair.name} ({heading_pair.count})")
for _ in range(heading_pair.count):
if part_index >= len(titles_of_parts):
break
print(f" - {titles_of_parts[part_index]}")
part_index += 1
if part_index < len(titles_of_parts):
print(" Other parts:")
while part_index < len(titles_of_parts):
print(f" - {titles_of_parts[part_index]}")
part_index += 1
Minden HeadingPair egy csoportnevet és a csoportban lévő elemek számát adja meg. A DocumentProperties.titles_of_parts egy lapos, rendezett gyűjtemény, ezért a fejlécre vonatkozó egymást követő címek számát kell felhasználni.
Tárolt metaadatok és formátumkorlátozások
A PresentationInfo.read_document_properties á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ó objektummodelljét, hogy újraszámolja ezeket az értékeket ebben a hívásban. Hiányzó tulajdonságok alapértelmezett értékekkel vannak ábrázolva, és a tárolt értékek elavultak lehetnek, ha az alkalmazás, amely utoljára mentette a fájlt, 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 fejlécre párokat és részcímeket. Elérhetőségük attól függ, hogy a dokumentumkészítő mely tulajdonságokat írt be.
- PPT: A bináris formátum tárolhatja a megfelelő dokumentumösszegzés-tulajdonságokat. Ha egy tulajdonság hiányzik vagy a dokumentumkészítő nem frissítette, az Aspose.Slides a tárolt vagy alapértelmezett értéket adja vissza ahelyett, hogy a diákból számolná ki.
- ODP: Az OpenDocument metaadatok általános dokumentumstatisztikákat biztosítanak, mint például oldal, bekezdés és szó szám, de ezek az értékek nem térképezhetők minden PowerPoint-specifikus kiterjesztett tulajdonságra. A rejtett diák, jegyzet-diák, multimédia, fejlécpár és részcím metaadatok esetleg nem állnak rendelkezésre, és a leltártulajdonságok alapértelmezett értékeket adhatnak vissza. Ne tekintse a null értéket vagy az üres gyűjteményt tekintélyes bizonyítéknak arra, hogy a megfelelő tartalom hiányzik.
Használja a könnyű metaadatmegközelítést leltárakhoz és előzetes ellenőrzésekhez. Töltse be a prezentációt, és ellenőrizze az élő objektummodellt, amikor az eredménynek tükröznie kell a memóriában történt változásokat, vagy amikor a tényleges prezentációtartalmat kell ellenőrizni.
Prezentáció tulajdonságok frissítése
A PresentationInfo.read_document_properties által visszaadott tulajdonságok módosíthatók anélkül, hogy Presentation példányt hoznánk létre. Alkalmazza a módosításokat a PresentationInfo.update_document_properties metódussal, majd írja ki a kötött prezentációt a PresentationInfo.write_binded_presentation metódussal.
Az alábbi kép mutatja az eredeti dokumentumtulajdonságokat a PowerPoint prezentációban:

Az alábbi példa megváltoztatja a címet és az utolsó mentés időpontját, majd az eredményt egy új fájlba írja:
import datetime
import aspose.slides as slides
source_file = "sample.pptx"
output_file = "sample_with_updated_properties.pptx"
presentation_info = slides.PresentationFactory.instance.get_presentation_info(source_file)
document_properties = presentation_info.read_document_properties()
document_properties.title = "Quarterly sales report"
document_properties.last_saved_time = datetime.datetime.now(datetime.timezone.utc)
presentation_info.update_document_properties(document_properties)
with open(output_file, "wb") as output_stream:
presentation_info.write_binded_presentation(output_stream)
Az alábbi kép mutatja a frissített dokumentumtulajdonságokat:

Hasznos hivatkozások
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 be vannak-e ágyazva a betűtípusok, és melyek azok?
Töltse be a prezentációt, és használja a Presentation.fonts_manager elemet. Hívja a FontsManager.get_embedded_fonts metódust a beágyazott betűtípusok lekéréséhez, valamint a FontsManager.get_fonts metódust a prezentáció által használt betűtípusok lekéréséhez. Hasonlítsa össze a két eredményt, hogy megtalálja azokat a betűtípusokat, amelyek a megjelenítéshez szükségesek, de nincsenek beágyazva.
Hogyan tudom gyorsan megállapítani, hogy a fájl tartalmaz-e rejtett diákokat, és hány darab van?
Amikor a tárolt dokumentummetaadatok elegendőek, olvassa a DocumentProperties.hidden_slides értéket a PresentationFactory.get_presentation_info és a PresentationInfo.read_document_properties segítségével. Ez alkalmas egy könnyű leltárhoz. Ha a prezentációt memóriában módosították, a tárolt metaadatok hiányozhatnak vagy elavultak lehetnek, vagy ha élő értékeket kell ellenőrizni, járja be a Presentation.slides gyűjteményt, és ellenőrizze minden dia Slide.hidden tulajdonságát.
Képes vagyok-e felismerni, hogy egyéni diák méret és tájolás van-e használatban, és eltérnek-e az alapértelmezettől?
Igen. Töltse be a prezentációt, és olvassa a Presentation.slide_size értéket. Ellenőrizze a SlideSize.type, SlideSize.size és SlideSize.orientation tulajdonságokat, hogy összehasonlítsa a jelenlegi beállításokat az elvárt előre beállított értékekkel és méretekkel.
Van gyors mód a diagramok külső adatforrásra hivatkozásának ellenőrzésére?
Igen. Keresse meg minden Chart elemet, és ellenőrizze a ChartData.data_source_type tulajdonságot. Külső munkafüzet esetén olvassa a ChartData.external_workbook_path értéket. Az adatforrás típusa és az útvonal azonosítja a külső hivatkozást, de annak elérhetősége külön erőforrás-ellenőrzést igényel.
Hogyan értékelhetem a ‘nehéz’ diákat, amelyek lassíthatják a renderelést vagy a PDF exportot?
Nincs egyetlen komplexitást mérő tulajdonság. Járja be a Presentation.slides gyűjteményt, és minden dia BaseSlide.shapes kollekcióját. Használja a formaelemek számát és a nagy képek, hatások, animációk vagy multimédia jelenlétét szűrőjeleként, majd mérjen egy reprezentatív renderelést vagy exportot, mielőtt egy diát végleges teljesítménybottnek tekintene.