Recherche de graphiques dans un fichier PowerPoint MS-PPT binaire (traduction automatique)
Important
Cet article a été traduit automatiquement, voir l’avertissement. Vous pouvez consulter la version en anglais de cet article ici.
Résumé Découvrez comment localiser des images bitmap, des dessins, des graphiques WordArt, et d’autres graphiques statiques dans un fichier MicrosoftPowerPoint (.ppt) binaire.
Dernière modification : jeudi 21 juillet 2011
S’applique à : Office 2007 | Office 2010 | PowerPoint | PowerPoint 2010 | VBA
Dans cet article
Introduction
Structures et procédures
Conclusion
Ressources supplémentaires
**S'applique à:**Microsoft OfficePowerPoint 2003 | Microsoft PowerPoint 2002 | Microsoft PowerPoint 2000 | Microsoft PowerPoint 97
Publication : mai 2011
**Fournie par :**Microsoft Corporation
Sommaire
Introduction :
Structures et procédures
Pour extraire des Images Bitmap à partir d'un.Fichier PPT
Pour extraire des dessins à partir d'un.Fichier PPT
Pour rechercher une image Bitmap dans une diapositive
Conclusion
Ressources supplémentaires
Introduction
Le format de fichier binaire (.ppt) est utilisé par Microsoft OfficePowerPoint MS-PPT 2003, Microsoft PowerPoint 2002, Microsoft PowerPoint 2000 et Microsoft PowerPoint 97. Utilisez les procédures de cet article pour extraire des images ou des dessins à partir d'un fichier .ppt et pour localiser une image bitmap dans une diapositive.
Extraction des images directement à partir du fichier binaire vous permet d'analyser rapidement le nombre de fichiers pour une image particulière sans ouvrir l'application PowerPoint. Vous pouvez ensuite supprimer complètement de l'image ou remplacez-le par une autre image de la même taille, avec peu de modifications au fichier. Par exemple, vous pourriez strike toutes les instances d'une image à partir d'un ensemble de fichiers protégée, ou mettre à jour toutes les instances d'un logo de société.
Dessins sont plus difficiles à remplacer que les images ; Toutefois, pour savoir où une image s'affiche dans une diapositive, vous devez trouver l'objet shape auquel l'image est ancré. Vous pouvez modifier propriété dessins ou des formes, telles que la modification du texte d'une partie d'un objet WordArt, avec une difficulté minimale si les dessins ou formes restent la même taille en mémoire. Dans le cas contraire, vous devez mettre à jour les en-têtes d'enregistrement dans la modification en cours pour refléter leurs nouvelles allocations de mémoire.
Notes
La méthode recommandée pour effectuer la plupart des tâches de programmation dans Microsoft PowerPoint consiste à utiliser le PowerPoint Primary Interop Assemblies. Il s'agit d'un ensemble de.NET qui fournit un modèle d'objet complet pour travailler avec Microsoft PowerPoint. Cette série d'articles traite uniquement des scénarios avancés, tels que l'où Microsoft PowerPoint n'est pas installé.
Structures et procédures
Tous les éléments graphiques vectoriels dans un fichier .ppt sont stockées sous forme de dessins à l'intérieur des objets DrawingContainer dans le flux de Document PowerPoint. Ces éléments incluent les images clipart, WordArt et des dessins ou des diagrammes constitués de lignes et formes évolutives. Les bitmaps sont stockés de façon centralisée en tant que grandes images binaires ou des images (BLIPs) à l'intérieur du flux d'images et référencés par les dessins dans lequel ils apparaissent. Dessins et BLIPs utilisent le format de fichier MS-ODRAW, qui est le format graphique partagé pour Microsoft Excel, Microsoft PowerPoint et Microsoft Word.
Notes
Tous les enregistrements dans un document PowerPoint commencent avec un en-tête de l'enregistrement de 8 octets, sauf indication contraire. Les troisième et quatrième octets afficher le type d'enregistrement, et les 4 derniers octets afficher la longueur de l'enregistrement. Vous pouvez utiliser ces informations pour identifier les enregistrements d'intérêt et ignorer le reste.
Pour extraire des Images Bitmap à partir d'un.Fichier PPT
Ouvrir le flux d'images.
Ce flux contient toutes les images bitmap incorporée l'utilisateur a copié dans le fichier, comme une série d'enregistrements OfficeArtBStoreDelay. Un enregistrement de OfficeArtBStoreDelay est un tableau d'enregistrements OfficeArtBStoreContainerFileBlock pur et a aucun enregistrement d'en-tête ou d'autres champs.
Pour chaque enregistrement de OfficeArtBStoreContainerFileBlock dans le tableau, effectuez les opérations suivantes :
Lire des octets 2 et 3 de l'en-tête d'enregistrement pour obtenir le type d'enregistrement.
Si type d'enregistrement = OfficeArtBlip(0xF018-0xF117), passez à l'étape suivante de cette procédure.
Si type d'enregistrement = OfficeArtFBSE(0xF007), procédez comme suit :
Ignorer les 20 premiers octets.
Lisez les quatre octets suivant, qui indiquent la taille de la bitmap comme un entier non signé.
Ignorer les octets suivants 12.
Lire le champ .name, qui est une chaîne de longueur variable, terminée par une null , Unicode qui affiche le nom de l'image bitmap.
Le champ suivant est .embeddedBlip, qui est un enregistrement de OfficeArtBlip.
Lire l'en-tête de l'enregistrement de l'enregistrement de OfficeArtBlip. Octets 2 et 3 spécifient le type de fichier que l'image aurait s'il était enregistré séparément. Les 4 derniers octets de l'en-tête enregistrement indiquent la longueur du reste de l'enregistrement. Pour plus d'informations sur le type de valeurs correspondent à quels types de fichiers, consultez la spécification [MS-ODRAW], section 2.2.23.
Le reste de l'enregistrement de OfficeArtBlip est les données d'image bitmap réelle. Enregistrez l'image sous n'importe quel type de fichier est spécifié par l'enregistrement d'en-tête.
Pour extraire des dessins à partir d'un.Fichier PPT
Créez un persist object directory, comme décrit dans Présentation du format de fichier binaire PowerPoint MS-PPT (traduction automatique), dans la première partie de la procédure intitulée «Récupération des diapositives à partir de fichiers PowerPoint. »
Dans le persist object directory, vérifiez les en-têtes d'enregistrement à chaque offset spécifié et lire chaque enregistrement d'en-tête.
Si rh.RecType est égal à RT_Document(0x03E8), c'est le conteneur de Document. Vérifiez que l'en-tête de l'enregistrement de chacun de ses conteneurs enfants jusqu'à ce que vous trouviez un enregistrement où rh.recType est égal à RT_DrawingGroup(0x040B).
C'est le conteneur de groupe de dessin pour le fichier. Notez l'emplacement de ce conteneur.
Où rh.recType est égal à RT_MainMaster(0x03F8) ou RT_Slide(0x03EE) :
Vérifiez chaque enregistrement enfant pour un enregistrement d'en-tête où rh.recType est égal à RT_Drawing(0x040C).
Analyser cet enregistrement comme décrit dans Understanding Graphics in Office Binary File Formats sous la procédure intitulée «gg985447(v=office.14).md. »
Pour rechercher une image Bitmap dans une diapositive
Extraire les bitmaps pour le fichier, comme décrit dans la procédure « pour les Images Bitmap extrait à partir d'un.Un fichier PPT » et enregistrement puis la position de chaque enregistrement de OfficeArtBStoreContainerFileBlock dans le tableau OfficeArtBStoreDelay.rgfb.
Analyser les dessins pour le fichier comme décrit dans la procédure « pour les dessins extrait à partir d'un.Fichier PPT. » Si vous savez quelle diapositive contient l'image bitmap, vous pouvez analyser seulement les dessins pour cette diapositive.
Vérifiez chaque forme de bitmaps.
Pour chaque enfant de l'enregistrement de OfficeArtSpContainer qui représente la forme en cours, analyser les en-têtes d'enregistrement pour un enregistrement où rh.RecType = OfficeArtFOPT(F00B), qui est l'attribut de forme principales Options.
Lire le reste de l'enregistrement de OfficeArtFOPT, qui consiste en un tableau de propriété.
La table property est de type OfficeArtRGFOPTE et n'a aucun enregistrement d'en-tête. Il se compose d'un tableau d'entrées de table de propriété OfficeArtFOPTE de 6 octets, suivi d'un champ de taille variable pour les données complexes.
Lire chaque entrée de table de propriété jusqu'à ce que vous en trouviez un où l'attribut opid.fBid au bit 14 = 0 x 1 et lisez les quatre octets suivant en tant qu'entier non signé. Cet entier spécifie la position dans le tableau OfficeArtBStoreDelay.rgfb de l'enregistrement de OfficeArtBStoreContainerFileBlock qui contient l'image bitmap correspondante.
Si aucune des entrées de table de propriété d'une forme donnée ont opid.fBid = 0 x 1, il n'y a aucun associé à cette forme de bitmap.
Conclusion
Cet article a abordé les processus de base permettant d'extraire des images et des formes à partir d'un format binaire de PowerPoint fichier (.ppt). En s'appuyant sur ces processus, vous serez en mesure d'analyser des ensembles de fichiers volumineux pour les dessins et les bitmaps, les baliser et même de les remplacer par les versions mises à jour.
Ressources supplémentaires
Pour plus d’informations, consultez les ressources suivantes :
Présentation du format de fichier binaire PowerPoint MS-PPT (traduction automatique)
Ouvrir le Centre développeur spécifications (éventuellement en anglais)
Blog de l'équipe Microsoft Open spécification prise en charge (éventuellement en anglais)
Notes
Avertissement traduction automatique : cet article a été traduit par un ordinateur, sans intervention humaine. Microsoft propose cette traduction automatique pour offrir aux personnes ne maîtrisant pas l’anglais l’accès au contenu relatif aux produits, services et technologies Microsoft. Comme cet article a été traduit automatiquement, il risque de contenir des erreurs de grammaire, de syntaxe ou de terminologie.