2013-08-24 33 views
0

我正在使用PHP从数据库中生成docx文档。生成的文档包含附有标签的柱状图(即包含文本框的用户形状)。为了让文本框容纳并显示所有文本(例如,用户不需要调整文本框的大小以查看所有文本),我的代码将计算3cm内将容纳多少个字符,将换行符添加到根据需要输入字符串,并告诉我需要多少行文本。我有:Word Openxml:如何获得正确大小的文本框?

<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.5cm(为内部填充额外.5),再乘以任何0.7厘米的高度$ labelLeftLines的价值。但是,文本框始终显示为3.cm宽×.86cm高,仅显示一行文本。 如果我加入“自动调整”:

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

生成的文件看起来一样的,不过,当我在文本框中单击鼠标右键检查的属性,“自动调整”的确适用。我必须取消选中它并重新检查它,以使其影响文本框。 任何openXML大师在那里?

回答

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.43厘米的高度。有一天,我可能能够找到自己的办公室。

相关问题