【发布时间】:2021-03-04 17:30:12
【问题描述】:
最近我正在使用带有 Spring Boot 的 Apache POI,我遇到了一个问题。我想表示实体之间的数据库连接,但在可视化多个连接时遇到了问题。
所以我的基本问题是分离连接。
这是我的起点:1
你看不到,但这两个矩形之间有多个连接,但由于起点和终点相同,它们是相互覆盖的。
生成的 XML 代码如下:
<p:cxnSp>
<p:nvCxnSpPr>
<p:cNvPr name="Connector 7" id="7" />
<p:cNvCxnSpPr>
<a:stCxn id="2" idx="3" />
<a:endCxn id="3" idx="1" />
</p:cNvCxnSpPr>
<p:nvPr />
</p:nvCxnSpPr>
<p:spPr>
<a:xfrm flipV="1">
<a:off y="2199409" x="2616200" />
<a:ext cy="1318491" cx="2413000" />
</a:xfrm>
<a:prstGeom prst="curvedConnector3">
<a:avLst />
</a:prstGeom>
<a:ln w="9525">
<a:solidFill>
<a:srgbClr val="000000" />
</a:solidFill>
</a:ln>
</p:spPr>
</p:cxnSp>
所以我想要做的是将弯曲连接器的中点设置为不同的值,就像在这张图片中一样(我在示例中手动执行此操作): 2
我尝试将其他一些 GeomGuide 元素添加到连接器,但结果是一个不稳定的 pptx 文件:
<a:prstGeom prst="curvedConnector3">
<a:avLst>
<a:gd name="adj1" fmla="val 57365" />
</a:avLst>
</a:prstGeom>
为此相关的java代码sn-p:
XSLFConnectorShape connector1 = slide.createConnector();
CTNonVisualConnectorProperties cx = ctConnector.getNvCxnSpPr().getCNvCxnSpPr();
CTConnection start = cx.addNewStCxn();
start.setId(shapeIdStart);
start.setIdx(rel.getStartSide());
CTConnection end = cx.addNewEndCxn();
end.setId(shapeIdEnd);
end.setIdx(rel.getEndSide());
CTGeomGuideList ctGeomGuideList = ctConnector.getSpPr().getPrstGeom().getAvLst();
CTGeomGuide ctGeomGuide = ctGeomGuideList.addNewGd();
ctGeomGuide.setName("adj");
ctGeomGuide.setFmla("val 45000");
【问题讨论】:
-
未提供Minimal, Reproducible Example,因此无法回答。但我想一定是
ctGeomGuide.setName("adj1");。 -
谢谢,我没有写这个,但我尝试了这个参数名称,但仍然没有工作。我将更新我的答案以使其可重现。
-
请edit您的问题:提供完整的代码(格式正确)并澄清您当前的问题。我们需要看看你的目标缺少什么。意味着
set the curved connectors midpoint in a different values您需要两条曲线,它们都具有与 2 个矩形的相同连接点,但 具有不同的 "curvatures" = 一条是正的并向上弯曲,另一条是负的并向下弯曲。这个问题不是和fmla属性设置的formula有关吗?
标签: java spring-boot apache-poi powerpoint ecma