Word Openxml:如何获得正确大小的文本框?

时间:2013-08-24 21:04:32

标签: textbox ms-word openxml docx

我正在使用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厘米宽的文本框(内部填充额外增加.5)和.7厘米的高度乘以$ labelLeftLines的值。但是,文本框总是变为3.厘米宽,高达.86厘米,只显示一行文本。 如果我添加'autofit':

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

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

1 个答案:

答案 0 :(得分:0)

嗯,一些随意的挣扎发现我需要操纵的值在这里:

<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的高度。 有一天,我或许可以找到我的方法。