譯:桂浮云,2020年2月15日
原文鏈接:http://officeopenxml.com/WPparagraph-textFrames.php
文本框(text frame)首先是一個(gè)文本段落。相對(duì)于沒(méi)有框的段落而言,文本框具有特定大小,是文檔中的獨(dú)立區(qū)域,相對(duì)非框段落進(jìn)行定位。與文本輸入框(text box)類似,都是一個(gè)可被基于頁(yè)面和大小變化進(jìn)行定位的文本容器。文本輸入框(text box)編排上更為復(fù)雜,屬于drawingML規(guī)范的一部分,具體細(xì)節(jié)可參見(jiàn):http://www.officeopenxml.com/drwSp-textbox.php。文本框(text frame)是wordprocessingML的一部分,相對(duì)沒(méi)那么復(fù)雜。
文本框段落可以簡(jiǎn)單用<w:pPr>的子元素<w:framePr>表示。<w:framePr>是一個(gè)空元素,但包含跟文本框特征相關(guān)的屬性。相鄰兩個(gè)段落可以皆為文本框段落。如果兩個(gè)相鄰段落的<w:framePr>屬性組是相同,則可以認(rèn)為他們是同一個(gè)文本框的一部分。記住,是每個(gè)屬性都相同,否則仍將被視為兩個(gè)獨(dú)立的文本框。文本框的位置是相對(duì)于文檔中下一個(gè)非文本框段落計(jì)算出來(lái)的。
以下是一個(gè)文本框示例:
<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>
效果就是文本框位于頁(yè)面的右上角。
<w:framePr>屬性如下:
| 屬性 | 描述 |
|---|---|
| anchorLock | 指定文本框是否應(yīng)當(dāng)保持與非文本框段落的相對(duì)定位一致。布爾值。值為真且文本框有鎖定的錨時(shí),即便虛擬定位發(fā)生改變,文本框仍將維系相對(duì)于其他非框段落的定位。 |
| dropCap | 字符沉降是通過(guò)增加段落首字母或多個(gè)開(kāi)始字母的大小而開(kāi)始段落的一種方式。字符沉降即是通過(guò)文本框?qū)崿F(xiàn)的。換句話說(shuō),大個(gè)頭的字母擱置在一個(gè)文本框中,段落的剩余部分放置在隨后的非文本框內(nèi)。該屬性用于指定大個(gè)頭的字母如何相對(duì)定位??赡艿闹蛋╩argin(礦在文本margin外),drop(框在文本margin內(nèi))和none(本文本框非字符沉降框)。參加lines屬性,以設(shè)置沉降高度。 |
| h | 指定框高(單位:1 twip或 1/20point)。本屬性與hRule結(jié)合使用。如果hRule的值為auto,高度值將被忽略,高度基于內(nèi)容高度而定。如果hRule值為atLeast,表示框高最少為本屬性指定值。如果hRule值為exact,則框高按本屬性值確定。 |
| hAnchor | 指定框應(yīng)該水平錨定的對(duì)象,也即通過(guò)這個(gè)對(duì)象確定x屬性指定的水平位置。可能值有margin(水平定位應(yīng)根據(jù)文本空白來(lái)計(jì)算),page(水平定位應(yīng)根據(jù)頁(yè)面邊緣來(lái)計(jì)算),以及text(水平定位應(yīng)根據(jù)文本的邊緣來(lái)計(jì)算,包括文本縮進(jìn))。 |
| hRule | 見(jiàn)如上h屬性的說(shuō)明 |
| hSpace | 指定水平方向上當(dāng)前文本框與任意環(huán)繞的無(wú)框文本之間保持的最小距離。以1/20 point為單位。 |
| lines | 字符沉降高度所占的行數(shù)。默認(rèn)值為1。 |
| vAnchor | 指定框應(yīng)該豎直錨定的對(duì)象,也即通過(guò)這個(gè)對(duì)象確定y屬性指定的豎直位置??赡苤涤衜argin(豎直定位應(yīng)根據(jù)文本空白來(lái)計(jì)算),page(豎直定位應(yīng)根據(jù)頁(yè)面邊緣來(lái)計(jì)算),以及text(豎直定位應(yīng)根據(jù)文本的邊緣來(lái)計(jì)算)。 |
| vSpace | 指定豎直方向上當(dāng)前文本框與任意環(huán)繞的無(wú)框文本之間保持的最小距離。以1/20 point為單位。 |
| w | 指定框?qū)?單位:1 twips或1/20point)。如果忽略該屬性,則寬度由框的內(nèi)容確定。 |
| wrap | 指定文本框文本環(huán)繞樣式,可能值是:around,每行都環(huán)繞。auto,由應(yīng)用程序決定。none - 無(wú)環(huán)繞。notBeside,文本不應(yīng)環(huán)繞文本框的剩余行;文本應(yīng)緊隨著放置在不相交的文本框之后一行。through,文本框每行剩余空間也環(huán)繞。tight,文本應(yīng)該緊緊圍繞文本框每行上的剩余空間。 |
| x | 指定文本框絕對(duì)水平位置。相對(duì)于hAnchor屬性指定的水平錨點(diǎn)的相對(duì)位置。單位:1/20point。正數(shù)表示文本框位于錨點(diǎn)對(duì)象之后;負(fù)數(shù)表示位于錨點(diǎn)對(duì)象之前。如果xAlign屬性已指定,則本屬性值將被跳過(guò)。如果沒(méi)有設(shè)定該屬性,默認(rèn)為0。 |
| xAlign | 指定文本框水平相對(duì)位置——相對(duì)于hAnchor屬性指定的錨點(diǎn)而言。如果忽略該屬性,位置由x屬性確定絕對(duì)水平位置,可能的值包括:center,水平居中。inside,父對(duì)象應(yīng)在錨點(diǎn)對(duì)象之內(nèi),如在文本水平邊緣之內(nèi)。left,父對(duì)象應(yīng)為與錨點(diǎn)對(duì)象左對(duì)齊。outside,父對(duì)象應(yīng)在錨點(diǎn)對(duì)象之外,如文本水平邊緣之外。right,父對(duì)象應(yīng)與錨點(diǎn)對(duì)象右對(duì)齊。 |
| y | 指定文本框的絕對(duì)豎直位置。由vAnchor屬性指定的豎直錨點(diǎn)相對(duì)確定。單位:1/20point。正數(shù)表示在錨點(diǎn)對(duì)象之后,負(fù)數(shù)在錨點(diǎn)對(duì)象之前。如果xAlign也被指定,則該值將會(huì)忽略不計(jì)。如果漏掉本屬性,假定為0。 |
| yAlign | 指定文本框的垂直相對(duì)位置——相對(duì)于vAnchor屬性指定的錨點(diǎn)對(duì)象而言。如果漏過(guò)本屬性,將由y屬性確定絕對(duì)豎直位置,可能的值有:bottom,與錨點(diǎn)對(duì)象底部邊緣對(duì)齊。center,豎直居中。inline,父對(duì)象豎直對(duì)齊到環(huán)繞文本行——也即沒(méi)有環(huán)繞文本。inside,父對(duì)象應(yīng)當(dāng)豎直對(duì)齊到錨點(diǎn)對(duì)象的邊緣并在錨點(diǎn)對(duì)象之內(nèi)。outside,父對(duì)象應(yīng)當(dāng)豎直對(duì)齊到錨點(diǎn)對(duì)象邊緣并在錨點(diǎn)對(duì)象之外。top,父對(duì)象應(yīng)當(dāng)豎直對(duì)齊到錨點(diǎn)對(duì)象頂部邊緣。 |