如何更改雪佛龙形状的角度

时间:2019-01-14 21:23:49

标签: java apache-poi

我正在尝试使用Apache POI绘制人字形形状。我想最后更改箭头的角度,以便为文本区域获得更多空间。目前,该角度几乎为45度。我没有在API文档中找到任何可以帮助我更改箭头边缘角度的东西。

ClientAnchor anchor = this.createClientAnchor(helper, x, y,a, b);
XSSFSimpleShape shape = ((XSSFDrawing) drawing).createSimpleShape((XSSFClientAnchor) anchor);
shape.setShapeType(ShapeTypes.CHEVRON);
shape.setLineWidth(1.5);
shape.setLineStyle(0);

1 个答案:

答案 0 :(得分:0)

如果创建默认形状ShapeTypes.CHEVRON并在Excel中查看此形状,将看到用于设置箭头角度的手柄。进行操作,然后保存文件,然后简单地解压缩*.xlsx文件,看看/xl/drawings/drawing1.xml。在那里您会找到

...
<a:prstGeom prst="chevron">
 <a:avLst>
  <a:gd name="adj" fmla="val 160000"/>
 </a:avLst>
</a:prstGeom>
...

因此,我们需要一个AvLst的{​​{1}},然后才能以编程方式操纵该句柄(CTGeomGuideList)。

我们唯一必须另外知道的是adj的可能值是什么。某些测试设置会导致洞悉0是调整手柄向右最大移动,这将导致矩形形状。调整手柄最大向左移动的位置是val,其中100,000 * cx / cy * 1是宽度,cx是形状的高度。所有其他调整手柄设置都在两者之间。因此cy将把调整手柄移到中间。

示例:

100,000 * cx / cy * 0.5