译:桂浮云,2020年2月15日
原文链接:http://officeopenxml.com/WPparagraph-textFrames.php
文本框(text frame)首先是一个文本段落。相对于没有框的段落而言,文本框具有特定大小,是文档中的独立区域,相对非框段落进行定位。与文本输入框(text box)类似,都是一个可被基于页面和大小变化进行定位的文本容器。文本输入框(text box)编排上更为复杂,属于drawingML规范的一部分,具体细节可参见:http://www.officeopenxml.com/drwSp-textbox.php。文本框(text frame)是wordprocessingML的一部分,相对没那么复杂。
文本框段落可以简单用<w:pPr>的子元素<w:framePr>表示。<w:framePr>是一个空元素,但包含跟文本框特征相关的属性。相邻两个段落可以皆为文本框段落。如果两个相邻段落的<w:framePr>属性组是相同,则可以认为他们是同一个文本框的一部分。记住,是每个属性都相同,否则仍将被视为两个独立的文本框。文本框的位置是相对于文档中下一个非文本框段落计算出来的。
以下是一个文本框示例:
<w:p>
<w:pPr>
<w:framePr w:w="3500" w:h="3500" w:wrap="auto" w:vAnchor="page" w:hAnchor="page" w:xAlign="right" w:yAlign="top"/>
<w:pBdr>
<w:left w:val="single" w:sz="12" w:space="1" w:color="auto"/>
<w:bottom w:val="single" w:sz="12" w:space="1" w:color="auto"/>
</w:pBdr>
<w:rPr>
<w:sz w:val="24"/>
<w:szCs w:val="24"/>
<w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:sz w:val="24"/>
<w:szCs w:val="24"/>
<w:rPr>
<w:t>This is the text frame paragraph.</w:t>
</w:r>
</w:p>
效果就是文本框位于页面的右上角。
<w:framePr>属性如下:
属性 | 描述 |
---|---|
anchorLock | 指定文本框是否应当保持与非文本框段落的相对定位一致。布尔值。值为真且文本框有锁定的锚时,即便虚拟定位发生改变,文本框仍将维系相对于其他非框段落的定位。 |
dropCap | 字符沉降是通过增加段落首字母或多个开始字母的大小而开始段落的一种方式。字符沉降即是通过文本框实现的。换句话说,大个头的字母搁置在一个文本框中,段落的剩余部分放置在随后的非文本框内。该属性用于指定大个头的字母如何相对定位。可能的值包括margin(矿在文本margin外),drop(框在文本margin内)和none(本文本框非字符沉降框)。参加lines属性,以设置沉降高度。 |
h | 指定框高(单位:1 twip或 1/20point)。本属性与hRule结合使用。如果hRule的值为auto,高度值将被忽略,高度基于内容高度而定。如果hRule值为atLeast,表示框高最少为本属性指定值。如果hRule值为exact,则框高按本属性值确定。 |
hAnchor | 指定框应该水平锚定的对象,也即通过这个对象确定x属性指定的水平位置。可能值有margin(水平定位应根据文本空白来计算),page(水平定位应根据页面边缘来计算),以及text(水平定位应根据文本的边缘来计算,包括文本缩进)。 |
hRule | 见如上h属性的说明 |
hSpace | 指定水平方向上当前文本框与任意环绕的无框文本之间保持的最小距离。以1/20 point为单位。 |
lines | 字符沉降高度所占的行数。默认值为1。 |
vAnchor | 指定框应该竖直锚定的对象,也即通过这个对象确定y属性指定的竖直位置。可能值有margin(竖直定位应根据文本空白来计算),page(竖直定位应根据页面边缘来计算),以及text(竖直定位应根据文本的边缘来计算)。 |
vSpace | 指定竖直方向上当前文本框与任意环绕的无框文本之间保持的最小距离。以1/20 point为单位。 |
w | 指定框宽(单位:1 twips或1/20point)。如果忽略该属性,则宽度由框的内容确定。 |
wrap | 指定文本框文本环绕样式,可能值是:around,每行都环绕。auto,由应用程序决定。none - 无环绕。notBeside,文本不应环绕文本框的剩余行;文本应紧随着放置在不相交的文本框之后一行。through,文本框每行剩余空间也环绕。tight,文本应该紧紧围绕文本框每行上的剩余空间。 |
x | 指定文本框绝对水平位置。相对于hAnchor属性指定的水平锚点的相对位置。单位:1/20point。正数表示文本框位于锚点对象之后;负数表示位于锚点对象之前。如果xAlign属性已指定,则本属性值将被跳过。如果没有设定该属性,默认为0。 |
xAlign | 指定文本框水平相对位置——相对于hAnchor属性指定的锚点而言。如果忽略该属性,位置由x属性确定绝对水平位置,可能的值包括:center,水平居中。inside,父对象应在锚点对象之内,如在文本水平边缘之内。left,父对象应为与锚点对象左对齐。outside,父对象应在锚点对象之外,如文本水平边缘之外。right,父对象应与锚点对象右对齐。 |
y | 指定文本框的绝对竖直位置。由vAnchor属性指定的竖直锚点相对确定。单位:1/20point。正数表示在锚点对象之后,负数在锚点对象之前。如果xAlign也被指定,则该值将会忽略不计。如果漏掉本属性,假定为0。 |
yAlign | 指定文本框的垂直相对位置——相对于vAnchor属性指定的锚点对象而言。如果漏过本属性,将由y属性确定绝对竖直位置,可能的值有:bottom,与锚点对象底部边缘对齐。center,竖直居中。inline,父对象竖直对齐到环绕文本行——也即没有环绕文本。inside,父对象应当竖直对齐到锚点对象的边缘并在锚点对象之内。outside,父对象应当竖直对齐到锚点对象边缘并在锚点对象之外。top,父对象应当竖直对齐到锚点对象顶部边缘。 |