Presentatie-informatie ophalen en bijwerken in Python
Overzicht
Aspose.Slides kan het formaat van een presentatie identificeren en de documentmetadata lezen zonder een volledig presentatiemodel te maken. Dit is handig wanneer u bestanden moet classificeren, een inventaris moet opstellen of eigenschappen moet inspecteren voordat u beslist of u de inhoud van de presentatie wilt laden en verwerken.
Dit artikel demonstreert een lichte inspectie via PresentationFactory en PresentationInfo, evenals gerichte updates via DocumentProperties.
Controleer een presentatiefomaat
Als u al een geladen presentatie heeft, zie Determine the Original Presentation Format voor detectie na het laden en de beperkingen van legacy PPT-, PPS‑ en POT‑stromen.
Gebruik PresentationFactory.get_presentation_info om een bestand te inspecteren zonder een Presentation‑instantie te maken. De eigenschap PresentationInfo.load_format geeft het gedetecteerde formaat weer, zoals PPTX, PPT of 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}")
Maak een lichte presentatie‑inventaris
Wanneer u veel presentatiebestanden verwerkt, heeft u mogelijk een compacte inventaris nodig voor validatie, indexering of een documentbeheersysteem. Gebruik in dit scenario PresentationFactory.get_presentation_info om een PresentationInfo‑object te verkrijgen, en roep vervolgens PresentationInfo.read_document_properties aan om de documentmetadata te lezen. Deze aanpak maakt geen Presentation‑instantie aan en vereist niet dat u het volledige presentatiemodel doorloopt.
De uitgebreide eigenschappen die door DocumentProperties worden blootgelegd, bieden de volgende inventariswaarden:
| Eigenschap | Inventariswaarde |
|---|---|
| slides | Totaal aantal dia’s. |
| hidden_slides | Aantal verborgen dia’s. |
| notes | Aantal dia’s die notities bevatten. |
| paragraphs | Totaal aantal alinea’s, indien beschikbaar. |
| words | Totaal aantal woorden. |
| multimedia_clips | Totaal aantal audio‑ en videoclips. |
Het volgende voorbeeld leest deze waarden zonder een Presentation‑object te maken en drukt een compacte inventaris af. Het combineert ook heading_pairs met titles_of_parts om inhoudsgroepen weer te geven, zoals lettertypen, thema’s en diatitel.
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
Elke HeadingPair levert een groepsnaam en het aantal items in die groep. DocumentProperties.titles_of_parts is een platte, geordende collectie, dus verwerk het aantal opeenvolgende titels dat door elk heading‑pair wordt gespecificeerd.
Opgeslagen metadata en formaatbeperkingen
De inventariseigenschappen die worden geretourneerd door PresentationInfo.read_document_properties weerspiegelen de metadata die beschikbaar is in het bron‑document. Aspose.Slides laadt en doorloopt het presentatiemodel niet om deze waarden voor deze oproep opnieuw te berekenen. Ontbrekende eigenschappen worden weergegeven met standaardwaarden, en opgeslagen waarden kunnen verouderd zijn als de applicatie die het bestand als laatste heeft opgeslagen, de documenteigenschappen niet heeft bijgewerkt.
- PPTX: Het formaat biedt uitgebreide documenteigenschappen voor dia‑, notitie‑, verborgen‑dia‑, alinea‑, woord‑ en multimedia‑telling, evenals heading‑pairs en onderdeel‑titels. De beschikbaarheid hangt af van welke eigenschappen door de documentproducent zijn geschreven.
- PPT: Het binaire formaat kan overeenkomstige document‑samenvattings‑eigenschappen opslaan. Als een eigenschap ontbreekt of niet is ververst door de documentproducent, retourneert Aspose.Slides de opgeslagen of standaardwaarde in plaats van deze vanuit de dia’s te berekenen.
- ODP: OpenDocument‑metadata biedt algemene documentstatistieken, zoals pagina‑, alinea‑ en woordtelling, maar deze waarden corresponderen niet met elke PowerPoint‑specifieke uitgebreide eigenschap. Metadata over verborgen dia’s, notitie‑dia’s, multimedia, heading‑pairs en onderdeel‑titels kan ontbreken, en de inventariseigenschappen kunnen standaardwaarden retourneren. Beschouw een nulwaarde of een lege collectie niet als sluitend bewijs dat de bijbehorende inhoud afwezig is.
Gebruik de lichte metadata‑aanpak voor inventarissen en eerste controles. Laad de presentatie en inspecteer het live‑objectmodel wanneer het resultaat weerspiegeld moet worden in wijzigingen in het geheugen of wanneer u de daadwerkelijke presentatiewaarde moet verifiëren.
Presentatie‑eigenschappen bijwerken
De eigenschappen die worden geretourneerd door PresentationInfo.read_document_properties kunnen ook worden gewijzigd zonder een Presentation‑instantie te maken. Pas de wijzigingen toe met PresentationInfo.update_document_properties, en schrijf vervolgens de gekoppelde presentatie weg met PresentationInfo.write_binded_presentation.
De volgende afbeelding toont de originele documenteigenschappen.

Het volgende voorbeeld wijzigt de titel en de laatst‑opgeslagen tijd en schrijft het resultaat naar een nieuw bestand:
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)
De volgende afbeelding toont de bijgewerkte documenteigenschappen.

Handige links
Voor gerelateerde beveiligingscontroles en beschermingsinstellingen, zie de volgende artikelen:
FAQ
Hoe kan ik controleren of lettertypen zijn ingesloten en welke dit zijn?
Laad de presentatie en gebruik Presentation.fonts_manager. Roep FontsManager.get_embedded_fonts aan om de ingesloten lettertypen te verkrijgen en FontsManager.get_fonts om de door de presentatie gebruikte lettertypen te verkrijgen. Vergelijk de twee resultaten om lettertypen te vinden die nodig zijn voor het renderen maar niet zijn ingesloten.
Hoe kan ik snel zien of het bestand verborgen dia’s bevat en hoeveel?
Wanneer de opgeslagen documentmetadata voldoende is, lees DocumentProperties.hidden_slides via PresentationFactory.get_presentation_info en PresentationInfo.read_document_properties. Dit is geschikt voor een lichte inventaris. Als de presentatie in het geheugen is aangepast, kan de opgeslagen metadata ontbreken of verouderd zijn, of moet u live‑waarden verifiëren; doorloop dan Presentation.slides en inspecteer de eigenschap Slide.hidden van elke dia.
Kan ik detecteren of een aangepaste dia‑grootte en -oriëntatie wordt gebruikt, en of deze afwijken van de standaardinstellingen?
Ja. Laad de presentatie en lees Presentation.slide_size. Inspecteer SlideSize.type, SlideSize.size, en SlideSize.orientation om de huidige instellingen te vergelijken met de verwachte vooraf ingestelde waarden en afmetingen.
Is er een snelle manier om te zien of grafieken naar externe gegevensbronnen verwijzen?
Ja. Zoek elke Chart op en inspecteer ChartData.data_source_type. Voor een extern werkboek, lees ChartData.external_workbook_path. Het type gegevensbron en het pad identificeren een externe verwijzing, maar het verifiëren of het doel beschikbaar is, vereist een aparte resource‑check.
Hoe kan ik ‘zware’ dia’s beoordelen die het renderen of exporteren naar PDF kunnen vertragen?
Er bestaat geen enkele complexiteitseigenschap. Doorloop Presentation.slides en de collectie BaseSlide.shapes van elke dia. Gebruik het aantal vormen en de aanwezigheid van grote afbeeldingen, effecten, animaties of multimedia als screen‑signalen, en meet een representatieve render of export voordat u een dia als een bevestigd prestatie‑knelpunt behandelt.