Word Openxml:如何获得合适大小的文本框



我使用PHP从数据库生成docx文档。生成的文档包含附有标签的柱状图(即包含文本框的用户形状)。为了让文本框容纳和显示所有文本(即用户不需要调整文本框的大小来查看所有文本),我的代码计算3cm中可以容纳多少个字符,根据需要向字符串添加换行符,并告诉我需要多少行文本。我有:

<a:xfrm xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">
      <a:off x="1638276" y="1676399"/>
      <a:ext cx="1257325" cy="'.(252000 * $labelLeftLines).'"/>
 </a:xfrm>

我认为它应该给我一个大约3.5厘米宽的文本框(内部填充额外增加了0.5),高度为.7厘米乘以$labelLeftLines的值。然而,文本框总是显示为3厘米宽乘.86厘米高,它只显示一行文本。如果我添加"自动对焦":

<a:bodyPr xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" vertOverflow="clip" wrap="square" rtlCol="0">
     <a:spAutoFit/>
</a:bodyPr>

生成的文件看起来完全一样,不过,当我右键单击文本框检查属性时,确实应用了"autofit"。我必须取消选中它并重新检查它,使其影响文本框。有openXML大师吗?

嗯,一些随机的挣扎表明我需要处理的值在这里:

<cdr:relSizeAnchor xmlns:cdr="http://schemas.openxmlformats.org/drawingml/2006/chartDrawing"> 
   <cdr:from>
     <cdr:x>0.47</cdr:x>
     <cdr:y>0.75</cdr:y>
   </cdr:from>
   <cdr:to>
     <cdr:x>0.67</cdr:x>
     <cdr:y>1</cdr:y>
   </cdr:to>

改变这些值实际上会改变texbox的大小,尽管我不知道使用了什么单位。从0.75到1产生1.43cm的高度。总有一天,我也许能找到解决这个难题的办法。

最新更新