天天看點

python-docx 頁面設定

編輯一篇word文檔,往往首先從頁面設定開始,從下圖可以看出,頁面設定常操作的有頁邊距、紙張方向、紙張大小4個,而在word中是以節(section)來分大的塊,每一節的頁面設定可以不同。是以在python-docx中也是一樣,目前節的各項屬性全部儲存在目前的section中,要想設定目前節的頁面就從了解section的各個屬性應用開始吧。

python-docx 頁面設定

如果用python-docx建立一個空白文檔,那麼預設是隻有一個節

,如果要增加節可以用doc.add_section()來完成。

了解了節之後我們開始來對節的頁面進行設定。

在python-docx包中常用頁邊距屬性存在section的以下4個屬性中:

section.top_margin:上頁邊距

section.bottom_margin:下頁邊距

section.left_margin:左頁邊距

section.right_margin:右頁邊距

頁邊距的值以厘米(cm)為機關,讓我們來看看剛才第二節的預設的頁邊距是多少

  注,這裡的sections[1]是第二節。

下面把頁邊距設定成我們公文常用的5678頁面距

  這裡要先導入docx中定義機關的Cm,後面常用的機關還有Pt 也是這個塊導入。

另外 頁邊距屬性還有3個不常用的就是裝訂線,頁眉、頁腳邊距分别為:<code>section.gutter,</code><code>section.header_distance, section.footer_distance ,設定方法同上,不再贅述。需要說明的是裝訂線還有一個位置屬性,暫時未發現如何設定,預設為左,如果需求設定成右,可以建個模闆docx文檔導入。</code>

Section 中的三個屬性描述了頁面方向和尺寸。分别為:<code>section.orientation, section.page_width, section.page_height</code>

紙張大小設定機關我習慣用cm,設定同頁邊距。

這裡要特别說下orientation,即紙張方向,也是要設定的,不能說你把紙張寬度設定寬了,高度設定低了紙張就變成橫向了,會影響列印等。

紙張方向的值是docx.enum.section.WD_ORIENTATION中枚舉類型的2常量來設定的。分别為:

WD_ORIENTATION.LANDSCAPE:紙張方向為橫向。

WD_ORIENTATION.PORTRAIT:紙張方向為縱向。

先檢視下:

  預設的是信紙大小,橫向

設定成我們常用的A4紙大小下:

有些時候我們還要在某些節中分欄,給節設定分欄的語句比較固定,就是更改section的一個私有屬性。先導入docx.oxml.ns.qn,然後一句話搞定

想設定成幾欄 把‘2’就改成幾。