中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行python docx頁面設置

發布時間:2021-10-11 09:05:36 來源:億速云 閱讀:172 作者:柒染 欄目:開發技術

這篇文章將為大家詳細講解有關如何進行python docx頁面設置,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

word文檔-節-的概念

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

如果用python-docx新建一個空白文檔,那么默認是只有一個節

>>> import docx
>>> doc = docx.Document()
>>> len(doc.sections)
1

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

>>> import docx
>>> doc = docx.Document()
>>> len(doc.sections)
1
>>> doc.add_section()
<docx.section.Section object at 0x000001F27F85E370>
>>> len(doc.sections)
2  

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

設置頁邊距

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

section.top_margin:上頁邊距

section.bottom_margin:下頁邊距

section.left_margin:左頁邊距

section.right_margin:右頁邊距

頁邊距的值以厘米(cm)為單位,讓我們來看看剛才第二節的默認的頁邊距是多少

>>> print('上',doc.sections[1].top_margin.cm,'下',doc.sections[1].bottom_margin.cm,'左',doc.sections[1].left_margin.cm,'右',doc.sections[1].right_margin.cm)
上 2.54 下 2.54 左 3.175 右 3.175

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

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

>>> from docx.shared import Cm
>>> doc.sections[1].top_margin = Cm(3.7)
>>> doc.sections[1].bottom_margin = Cm(3.5)
>>> doc.sections[1].left_margin = Cm(2.8)
>>> doc.sections[1].right_margin = Cm(2.6)

這里要先導入docx中定義單位的Cm,后面常用的單位還有Pt 也是這個塊導入。

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

設置紙張方向和大小

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

紙張大小設置單位我習慣用cm,設置同頁邊距。

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

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

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

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

先查看下:

>>> doc.sections[0].page_height.cm
27.94
>>> doc.sections[0].page_width.cm
21.59
>>> doc.sections[0].orientation
0

默認的是信紙大小,橫向

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

from docx.shared import Cm
from docx.enum.section import WD_ORIENTATION
doc.sections[0].page_height = Cm(29.7)  # 設置A4紙的高度
doc.sections[0].page_width = Cm(21)  # 設置A4紙的寬
doc.sections[0].orientation = WD_ORIENTATION.PORTRAIT # 設置紙張方向為橫向,可以不設置 默認為橫向
doc.sections[1].page_height = Cm(21)  # 設置A4紙的高度
doc.sections[1].page_width = Cm(29.7)  # 設置A4紙的寬
doc.sections[1].orientation = WD_ORIENTATION.LANDSCAPE # 設置紙張方向為縱向 

設置分欄

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

from docx.oxml.ns import qn
doc.sections[1]._sectPr.xpath('./w:cols')[0].set(qn('w:num'), '2') #把第二節設置為2欄

想設置成幾欄 把‘2'就改成幾。  

關于如何進行python docx頁面設置就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

甘孜| 安阳市| 长治市| 镶黄旗| 获嘉县| 桦川县| 屯留县| 阳谷县| 油尖旺区| 万宁市| 康乐县| 云霄县| 东城区| 瑞金市| 东安县| 苗栗市| 体育| 霍邱县| 嘉义市| 嘉义县| 万全县| 巩义市| 分宜县| 长乐市| 兴化市| 鄂托克旗| 漳浦县| 龙江县| 清水河县| 和政县| 英山县| 休宁县| 尉犁县| 邛崃市| 靖宇县| 谢通门县| 盐津县| 佳木斯市| 霍州市| 民县| 玛曲县|