Wordprocessing Text Frames

text frame 是一段文本,它位于文档的单独区域中,相对于非框架段落具有特定的大小和位置。text frame 类似于 text box。两者都是可以放置在页面上并调整大小的文本的容器。text box 具有更大的格式化灵活性。text box 是 drawingML 规范的一部分,将在 此处 进行详细讨论。text frame 是 wordprocessingML 的一部分,不那么复杂。

text frame 段落只是带有 <w:framePr> 作为 <w:pPr>的子元素的段落。 <w:framePr> 元素是一个空元素,具有许多可能的属性来指定框架的特征。相邻的段落都可以是text frame 段落。如果两个相邻段落的 <w:framePr> 上的属性集相同,则将它们视为同一 text frame 的一部分。每个属性必须相同,否则将被视为单独的 text frame 。利用文档中下一个非 text frame 段落位置,计算 text frame 的相对位置。

下面是一个示例 text frame 。

<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>这是 text frame 段落。</w:t>
	</w:r>
</w:p>
<w:p>
	<w:pPr>
		<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>这是下一个 段落。</w:t>
	</w:r>
</w:p>

下面是文本框架的外观 —— 位于页面的右上角。

wordprocessingml_锚点


定义 text frame 特征的 <w:framePr> 元素的属性如下。

anchorLock

指定 frame 应相对于非 frame 段落保持在相同的逻辑位置。值是布尔值。当值为 true 且 text frame 具有锁定的锚点时,即使更改了视觉位置, text frame 段落的位置也相对于其他非 frame 段落保持在 xml 中。

dropCap

首字下沉是通过增加段落的第一个字母或多个字母的大小来开始段落的一种方式。首字下沉实现为 text frame 。即,将大字母放在 text frame 中,并将段落的其余部分(正常大小)放在随后的非 text frame 中。该属性指定大字母相对于非 text frame 段落中后续的正常大小的文本的位置。可能的值为 margin( frame 位于文本边距外部),drop( frame 位于文本边距内部)和 none( text frame 不是首字下沉 frame )。

wordprocessingml_ide_02

h

指定 frame 的高度(以“缇”,即twips ,为单位,20 代表 1 “磅”,即Pt )。该属性与 hRule 属性结合使用。如果 hRule 的值为 auto,则高度值将被忽略,并且高度基于内容的高度。如果 hRule 值为 atLeast,则 frame 的高度应至少为 h 属性中指定的值。如果 hRule 值为 exact,则 frame 的高度应恰好是h属性中指定的值。

hAnchor

指定中水平锚定 frame 的对象。由 x 属性指定水平位置的该对象确定。可能的值为:margin (应相对于文本边距计算水平位置),page (应相对于页面边缘计算水平位置)和 text(应相对于文本的边缘计算水平位置) ,包括文字缩进)。下面是第一个带有 hAnchorvAnchor 设置为 page 的 text frame 。

wordprocessingml_wordprocessingml_03


下面是上面显示的示例 text frame ,但 hAnchor 设置为 marginvAnchor 设置为 text

wordprocessingml_msword_04

hRule

请参阅上面有关 h 属性的讨论。

hSpace

指定当前 text frame 和任何环绕的非 frame 文本之间要保持的最小距离。值以缇(即twips,20 缇为 1 磅)为单位。下面是上面的 text frame,但是 hSpace 值为 1440(1440 缇为 1 英寸)。

wordprocessingml_wordprocessingml_05

lines

指定首字下沉的高度。预设值为1。

vAnchor

指定垂直锚定 frame 的对象。由 y 属性指定垂直位置的该对象确定。可能的值为:margin(应相对于顶部水平文本边距计算垂直位置),page(应相对于页面边缘计算垂直位置)和 text(垂直位置应相对于文本的顶部水平边缘计算)。请参阅上面 hAnchor 讨论中的示例。

vSpace

指定当前 text frame 与上方或下方的任何非 frame 文本之间垂直保持的最小距离。值缇(twips,20 缇 = 1 磅)为单位。

w

指定 frame 的宽度(以缇即twips为单位,20 缇 = 1 磅。)。省略属性时,宽度由 frame 的内容确定。

wrap

指定环绕 text frame 的文本样式。可能的值为:

  • around - 文字应环绕每行文字
  • auto - 由应用程序确定
  • none - 没有环绕
  • notBeside - 文本不应环绕 text frame 的其余行;文本放置在与 frame 不相交的 text frame 之后的下一行
  • through - 文本应环绕 text frame 每一行的剩余空间
  • tight - 文字应紧紧环绕在 text frame 周围每一行的剩余空间

下面是将 wrap 设置为 none 的示例。

wordprocessingml_锚点_06


以下是将 wrap 设置为 through 的示例。

x

指定 text frame 的绝对水平位置。相对于 hAnchor 属性指定的水平锚点指定。值以缇即twips为单位,20 缇 = 1 磅。如果该值为正,则 text frame 位于锚对象之后。如果该值为负,则将其定位在锚对象之前。如果还指定了 xAlign 属性,则将忽略此值。如果省略,则该值假定为 0。

xAlign

指定 text frame 的相对水平位置 – 相对于 hAnchor 属性指定的锚点。如果省略,则 x 属性指定的值将用于确定绝对水平位置。可能的值为:

  • center - 水平居中
  • inside - 父对象应该在锚对象的内部,例如在水平文本边缘内
  • left - 父对象应相对于锚点左对齐
  • outside - 父对象应位于锚对象之外,例如水平位于文本边缘之外
  • right - 父对象应相对于锚点右对齐

下面是一个示例,其中 hAnchor 属性设置为 marginxAlign 设置为 leftvAnchor 属性设置为 textyAlign 设置为 center

wordprocessingml_ide_07

y

指定 text frame 的绝对垂直位置。相对于 vAnchor 属性指定的垂直锚点指定。值以缇即 twips 为单位,20 缇 = 1 磅。如果该值为正,则 text frame 位于锚对象之后。如果该值为负,则将其定位在锚对象之前。如果还指定了 yAlign 属性,则将忽略此值。如果省略,则该值假定为 0。

yAlign

指定 text frame 的相对垂直位置 – 相对于 vAnchor 属性指定的锚点。如果省略,则 y 属性指定的值将用于确定绝对垂直位置。可能的值为:

  • bottom - 父对象应垂直于锚的底部边缘父对象应垂直于锚的底部边缘
  • center - 垂直居中
  • inline - 父对象应与周围的文本垂直对齐 – 即,周围没有文本环绕
  • inside - 父对象应垂直于锚点的边缘和锚点对象的内部对齐
  • outside - 父对象应与锚点的边缘垂直对齐,并在锚点对象的外部
  • top - 父对象应与锚点的上边缘垂直对齐