【发布时间】:2017-12-08 15:32:19
【问题描述】:
有人知道Office Open XML wrapPolygon中x和y的含义和单位吗?
documentation 声明:
"指定 x 轴上的坐标。该坐标的原点应由父 XML 元素指定。...此属性的可能值由 ST_Coordinate 简单类型定义(第 5.1.12.16 节) 。”
听起来它应该描述一个多边形,从图片左上角的x=0 和y=0 开始。单位为EMU。
但这不可能是真的,因为如果在代码Change image layout or wrap in DOCX with Apache POI中使用,那么,如果我这样做:
...
+"<wp:wrapTight wrapText=\"bothSides\">"
+"<wp:wrapPolygon edited=\"0\">"
+"<wp:start x=\"0\" y=\"0\"/>"
+"<wp:lineTo x=\"0\" y=\""+height+"\"/>"
+"<wp:lineTo x=\""+width+"\" y=\""+height+"\"/>"
+"<wp:lineTo x=\""+width+"\" y=\"0\"/>"
+"<wp:lineTo x=\"0\" y=\"0\"/>"
+"</wp:wrapPolygon>"
+"</wp:wrapTight>"
...
那么生成的换行点在图片之外很远。
而是描述一个正方形多边形 21600 x 21600
...
+"<wp:wrapPolygon edited=\"0\">"
+"<wp:start x=\"0\" y=\"0\"/>"
+"<wp:lineTo x=\"0\" y=\"21600\"/>"
+"<wp:lineTo x=\"21600\" y=\"21600\"/>"
+"<wp:lineTo x=\"21600\" y=\"0\"/>"
+"<wp:lineTo x=\"0\" y=\"0\"/>"
+"</wp:wrapPolygon>"
...
导致在图片的完全宽度 x 高度中的换行点。
这与图片大小本身无关。它可以是所有可能大小的正方形或矩形大小的图片。
因此,虽然“此坐标的原点应由父 XML 元素指定。”并且多边形从图片左上角的x=0 和y=0 开始,宽度和高度的单位不能是EMU。并且由于如果图片是矩形,21600 x 21600的正方形多边形会导致矩形环绕点,甚至多边形本身的含义也不清楚。
这是否记录在某处?
【问题讨论】:
标签: ms-word apache-poi openxml