Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml a:箭头形状ooxl的avLst值_Xml_Powerpoint_Openxml - Fatal编程技术网

Xml a:箭头形状ooxl的avLst值

Xml a:箭头形状ooxl的avLst值,xml,powerpoint,openxml,Xml,Powerpoint,Openxml,我在一个项目中工作,我们正在创建形状。假设我们正在转换一个X工具,您可以在其中创建类似于PP的形状,然后您可以从该工具导出到pptx文件 到目前为止,我们正在创建非常相似的形状。大小、格式、颜色等等。我唯一的问题是,对于箭头形状,箭头的形状并不完全准确。所以,我需要使用a:avLst值。因此,从工具中我可以知道头部高度,我需要将其转换为适当的: <a:gd name="adj1" fmla="val ??????"/> <a:gd name="adj2" fmla="val ?

我在一个项目中工作,我们正在创建形状。假设我们正在转换一个X工具,您可以在其中创建类似于PP的形状,然后您可以从该工具导出到pptx文件

到目前为止,我们正在创建非常相似的形状。大小、格式、颜色等等。我唯一的问题是,对于箭头形状,箭头的形状并不完全准确。所以,我需要使用a:avLst值。因此,从工具中我可以知道头部高度,我需要将其转换为适当的:

<a:gd name="adj1" fmla="val ??????"/>
<a:gd name="adj2" fmla="val ??????"/>

有人知道如何计算这些吗?????价值观 我知道adj1表示箭头宽度,adj2表示“头部高度”。我也知道你需要设置两者(虽然对我来说adj2是重要的一个)

总之,假设我想创建一个头为1“的向下箭头。 哪个


我应该设置吗

我将非常感谢你的帮助!
提前感谢

箭头宽度的逻辑似乎是:

长度箭头=调整(2)*形状宽度

因此,如果箭头形状为1”(72点)宽,调整(2)=1,则箭头长度为1”。如果调整(2)=0.5,则箭头长度为0.5”,依此类推

所谓长度,我指的是从箭头点到箭头另一端的距离。箭头的宽度由形状的宽度控制

通过使用PowerPoint本身中的VBA,可以更简单地计算出逻辑。例如,您可以将其粘贴到IDE中的代码模块中并直接运行:

Sub Adj2()
    With ActiveWindow.Selection.ShapeRange(1)
        Debug.Print .Adjustments(1)
        Debug.Print .Adjustments(2)
        .Width = 1 * 72
        .Adjustments(2) = 1
    End With
End Sub

有什么原因不能简单地在PowerPoint中创建形状并查看XML以了解它的功能吗?这些值会根据形状大小而变化。所以,我需要找到一个公式来计算。实际上,我需要知道我的建议是否可行:计算出头部为XX英寸的值。谢谢很多感谢史蒂夫的回复。现在:我想您正在使用VBA。我正在使用Python pptx库使用Python。因此,我们假设我正在直接编辑xml文件。我需要知道XML文件中的哪个值对应于VBA中用于adj2变量的1。另一种可能性是VBA中只包含这些公式,并且更易于使用。非常感谢你的帮助!!是的,我在VBA工作,Maxi。同样,我会通过在PPT或通过VBA在PPT中进行更改来了解您想要什么,然后查看保存的PPTX文件中的结果。例如,如果调整(2)设置为.5,那么在xml中,fmla=“val 50000”,其中如果在PPT中设置为1,则fmla=“val 100000”。Steve,再次感谢。我将检查库,看看它是否实现了这种功能。如果是的话,也许我可以看看你说了什么。如果不是,我需要计算“大数字”。这是最复杂的部分。请记住,根据文档,adj1的值可以在0-100000之间。但是我需要使用的adj2可以有0-maxAdj2的值:我会继续努力。我需要一个数学公式,上面写着:好的。。。如果您有一个3英寸的箭头,并且希望箭头为1”,则adj2应为:XXX.:)。谢谢,祝你今天愉快!如果您有一个3英寸的箭头,那么调整(2)将是.333左右。调整(2)=ArrowShape.Width/DesiredArrowheadLength(您只需要调整XML中的奇数单位)嗨,Steve。非常感谢您不断的帮助。但是,正如我所说的,使用VBA是一件完全不同的事情,因为我完全相信VBA与office具有相同的公式。两者都是MS产品。在xml级别,这并不是那么简单。我将继续研究,使用您提供的所有信息。谢谢!
Sub Adj2()
    With ActiveWindow.Selection.ShapeRange(1)
        Debug.Print .Adjustments(1)
        Debug.Print .Adjustments(2)
        .Width = 1 * 72
        .Adjustments(2) = 1
    End With
End Sub