Dans PowerPoint 2007, comment puis-je placer une queue Callout programme?
-
11-09-2019 - |
Question
Je suis à la recherche au DrawingML d'un fichier PowerPoint 2007 et voici ce qu'il a pour les coordonnées et la géométrie de l'objet Callout:
<p:spPr>
<a:xfrm>
<a:off x="2819400" y="5181600"/> // X,Y Position of Callout Box
<a:ext cx="609600" cy="457200"/> // Width,Height of Callout Box
</a:xfrm>
<a:prstGeom prst="wedgeRectCallout">
<a:avLst>
<a:gd name="adj1" fmla="val 257853"/> // X Position Of Tail
<a:gd name="adj2" fmla="val -532360"/> // Y Position of Tail
</a:avLst>
</a:prstGeom>
<a:solidFill>
<a:schemeClr val="accent1">
<a:alpha val="50000"/>
</a:schemeClr>
</a:solidFill>
</p:spPr>
Ce que je vais avoir des problèmes avec la formule pour dire à placer la queue à une coordonnée particulière sur la diapositive. J'ai essayé cela de calculer, mais il ne fonctionne pas correctement.
//This gives me the distance between the Coordinate and the Center of the Callout.
DistanceX = Coordinate.X - (Callout.X + Callout.X_Ext)/2
DistanceY = Coordinate.Y - (Callout.Y + Callout.Y_Ext)/2
Mais, la valeur géométrique ne soit pas la distance entre les deux points.
Quelqu'un sait ce que la formule est pour le calcul de cela?
La solution
Je pense que j'ai compris la formule:
DistanceX = Coordinate.X - (Callout.X + (Callout.X_Ext/2))
DistanceY = Coordinate.Y - (Callout.Y + (Callout.Y_Ext/2))
TailX = (DistanceX/Callout.X_Ext) * 100000
TailY = (DistanceY/Callout.Y_Ext) * 100000
Autres conseils
Cela peut être un bon moyen rapide de le faire si les ajustements sont disponibles - je ne l'ai pas testé. Cependant, si je comprends ce que vous demandez, il est de savoir comment obtenir le x / y du point de queue de wedgeRectCallout à un endroit particulier à l'écran, y compris le cas où la taille / emplacement de la queue est ajustée. Je suppose que vous avez une taille prédéfinie du wedgeRectCallout.
La valeur que vous voulez doit être calculé à partir presetShapeDefinitions.xml (trouver les téléchargements Ecma). La valeur que vous voulez est ici dans l'élément wedgeRectCallout:
<lnTo>
<pt x="xb" y="yb" />
</lnTo>
Alors, comment calculez-vous x=xb
et y=yb
? Aller à la documentation Ecma et voir comment lire formules
DrawingML - Cadre de référence Matériel -> Dessin ML - Main -> Définitions de forme et attributs -> GD (forme Guide) et calculer les guides de forme dans gdLst
(qui prend la valeur des ajustements par défaut ou modifiés). Dans ce cas, vous devrez calculer tous / la plupart des guides pour vous assurer d'obtenir les valeurs XB et yb.
Faites-moi savoir si vous rencontrez des problèmes ou qui ont d'autres questions à ce sujet.
dans le fichier presetShapeDefinitions.xml, qui définit les parametrs et les formules nécessaires pour dessiner les formes, si youe regard sur la forme « wedgeRectCallout » vous verrez nombre de balises comme: <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
, <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
, <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
, <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
, <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
et <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
.
Les balises importantes du besoin de comprendre comment dessiner la forme sont les suivants: <gdLst>
et <pathLst>
.<gdLst>
Contient les formules de la forme, et <pathLst>
dit comment dessiner la forme
.
J'ai écrit un petit programme qui se traduit par javascript toutes les formules dans le fichier presetShapeDefinitions.xml.
Pour la page du site du programme cliquez .
Ce programme m'a aidé à construire PPTXjs plug-in qui convertit les fichiers PPTX en HTML.
Espérons que cela aide.