PowerPoint 2007で、どのように私はプログラム的に吹き出しテールを配置することができますか?
-
11-09-2019 - |
質問
私は、PowerPoint 2007ファイルのDrawingMLで探しています、これはそれが吹き出しオブジェクトの座標とジオメトリの持っているものです。
<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>
私はとのトラブルを抱えていることは、スライド上の座標を特定のテールを配置することを伝えるための式です。私はそれを計算し、これを試してみたが、それは正しく動作しません。
//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
しかし、幾何学的な値は2つの点の間の距離ではない。
誰でも式がこれを計算するためには何か知っていますか?
解決
私は式を考え出したと思います
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
他のヒント
これは調整が利用可能な場合に、これを行うには良い迅速な方法かもしれない - 私はそれをテストしていません。私はあなたが求めているものを理解している場合しかし、それは尾のサイズ/位置を調整した場合を含め、画面上の特定の位置にwedgeRectCalloutの尾ポイントのX / Yを取得する方法です。私はあなたがwedgeRectCalloutの事前に定義された大きさを持っていると仮定します。
あなたが望む値はpresetShapeDefinitions.xml(ECMAのダウンロードでそれを見つける。)から計算する必要があります。必要な値がwedgeRectCallout要素にここにあります:
<lnTo>
<pt x="xb" y="yb" />
</lnTo>
それでは、どのようにx=xb
とy=yb
を計算していますか? Ecmaのドキュメントに移動し、中に数式を読み取る方法を見ます
のDrawingML - Frameworkリファレンス材質 - >デッサンML - メイン - >シェイプ定義と属性 - > GD(ガイド形状)のと(デフォルトまたは修正さ調整の値をとる)gdLst
形状のガイドを計算します。この場合、あなたはXBとYBの値を取得するように、すべての/ほとんどのガイドを計算する必要があります。
問題が発生したか、これについて多くの質問がある場合は、私に教えてくださいます。
youeの形状について見れば、図形を描画するために必要なparametrsと式を定義するpresetShapeDefinitions.xmlファイルに「wedgeRectCallout」あなたのようなタグの数が表示されます:<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" />
と<pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
を。
図形を描画する方法を理解するために必要な重要なタグは以下の通りです。<gdLst>
と<pathLst>
.<gdLst>
は形の式を含みます、そして<pathLst>
は、図形を描画する方法を述べてい
私は、ファイル内のJavaScript presetShapeDefinitions.xmlすべての数式に変換する小さなプログラムを書いた。
プログラムのウェブサイトのページにここをクリックしてください。
このプログラムは、私がHTMLにPPTXファイルを変換 PPTXjs のプラグインを構築する助けた。
この情報がお役に立てば幸いです。