最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python-docx 頁(yè)面設(shè)置詳解

 更新時(shí)間:2021年10月11日 08:29:59   作者:站著活  
今天小編就為大家分享一篇python docx 中頁(yè)面的設(shè)置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

初識(shí)word文檔-節(jié)-的概念

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

在這里插入圖片描述

如果用python-docx新建一個(gè)空白文檔,那么默認(rèn)是只有一個(gè)節(jié)

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

,如果要增加節(jié)可以用doc.add_section()來(lái)完成。

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

了解了節(jié)之后我們開(kāi)始來(lái)對(duì)節(jié)的頁(yè)面進(jìn)行設(shè)置。

設(shè)置頁(yè)邊距

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

section.top_margin:上頁(yè)邊距

section.bottom_margin:下頁(yè)邊距

section.left_margin:左頁(yè)邊距

section.right_margin:右頁(yè)邊距

頁(yè)邊距的值以厘米(cm)為單位,讓我們來(lái)看看剛才第二節(jié)的默認(rèn)的頁(yè)邊距是多少

>>> 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]是第二節(jié)。

下面把頁(yè)邊距設(shè)置成我們公文常用的5678頁(yè)面距

>>> 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)

這里要先導(dǎo)入docx中定義單位的Cm,后面常用的單位還有Pt 也是這個(gè)塊導(dǎo)入。

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

設(shè)置紙張方向和大小

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

紙張大小設(shè)置單位我習(xí)慣用cm,設(shè)置同頁(yè)邊距。

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

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

WD_ORIENTATION.LANDSCAPE:紙張方向?yàn)闄M向。

WD_ORIENTATION.PORTRAIT:紙張方向?yàn)榭v向。

先查看下:

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

默認(rèn)的是信紙大小,橫向

設(shè)置成我們常用的A4紙大小下:

from docx.shared import Cm
from docx.enum.section import WD_ORIENTATION
doc.sections[0].page_height = Cm(29.7)  # 設(shè)置A4紙的高度
doc.sections[0].page_width = Cm(21)  # 設(shè)置A4紙的寬
doc.sections[0].orientation = WD_ORIENTATION.PORTRAIT # 設(shè)置紙張方向?yàn)闄M向,可以不設(shè)置 默認(rèn)為橫向
doc.sections[1].page_height = Cm(21)  # 設(shè)置A4紙的高度
doc.sections[1].page_width = Cm(29.7)  # 設(shè)置A4紙的寬
doc.sections[1].orientation = WD_ORIENTATION.LANDSCAPE # 設(shè)置紙張方向?yàn)榭v向 

設(shè)置分欄

有些時(shí)候我們還要在某些節(jié)中分欄,給節(jié)設(shè)置分欄的語(yǔ)句比較固定,就是更改section的一個(gè)私有屬性。先導(dǎo)入docx.oxml.ns.qn,然后一句話搞定

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

想設(shè)置成幾欄 把‘2'就改成幾。  

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • python實(shí)現(xiàn)的自動(dòng)發(fā)送消息功能詳解

    python實(shí)現(xiàn)的自動(dòng)發(fā)送消息功能詳解

    這篇文章主要介紹了python實(shí)現(xiàn)的自動(dòng)發(fā)送消息功能,涉及Python基于requests、itchat庫(kù)的數(shù)據(jù)請(qǐng)求與信息處理相關(guān)操作技巧,需要的朋友可以參考下
    2019-08-08
  • unittest+coverage單元測(cè)試代碼覆蓋操作實(shí)例詳解

    unittest+coverage單元測(cè)試代碼覆蓋操作實(shí)例詳解

    這篇文章主要為大家詳細(xì)介紹了unittest+coverage單元測(cè)試代碼覆蓋操作的實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • python基于K-means聚類算法的圖像分割

    python基于K-means聚類算法的圖像分割

    這篇文章主要介紹了python基于K-means聚類算法的圖像分割,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Python使用Selenium實(shí)現(xiàn)模擬登錄的示例代碼

    Python使用Selenium實(shí)現(xiàn)模擬登錄的示例代碼

    Selenium(本文基于python3.8)是一個(gè)功能強(qiáng)大的自動(dòng)化測(cè)試工具,它可以用于模擬用戶在瀏覽器中的行為,比如點(diǎn)擊、輸入、滾動(dòng)等等,本教程將詳細(xì)介紹如何使用Python編寫(xiě)一個(gè)模擬登錄地爬蟲(chóng),使用XPath等多種元素匹配方法,需要的朋友可以參考下
    2023-08-08
  • Django重裝mysql后啟動(dòng)報(bào)錯(cuò):No module named ‘MySQLdb’的解決方法

    Django重裝mysql后啟動(dòng)報(bào)錯(cuò):No module named ‘MySQLdb’的解決方法

    這篇文章主要給大家介紹了關(guān)于Django重裝mysql后啟動(dòng)報(bào)錯(cuò):No module named ‘MySQLdb’的解決方法,分享出來(lái),對(duì)同樣遇到這個(gè)問(wèn)題的朋友們一個(gè)參考學(xué)習(xí),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • 關(guān)于sklearn包導(dǎo)入錯(cuò)誤:ImportError:?cannot?import?name Type解決方案

    關(guān)于sklearn包導(dǎo)入錯(cuò)誤:ImportError:?cannot?import?name Type解

    這篇文章主要介紹了關(guān)于sklearn包導(dǎo)入錯(cuò)誤:ImportError:?cannot?import?name‘Type‘解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python 如何測(cè)試文件是否存在

    Python 如何測(cè)試文件是否存在

    這篇文章主要介紹了Python 如何測(cè)試文件是否存在,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • python中json、字典的區(qū)別以及相互轉(zhuǎn)換方法

    python中json、字典的區(qū)別以及相互轉(zhuǎn)換方法

    在Python中我們經(jīng)常會(huì)用到JSON格式的數(shù)據(jù),而將JSON格式轉(zhuǎn)化為Python的字典類型是一種常見(jiàn)的操作,這篇文章主要給大家介紹了關(guān)于python中json、字典的區(qū)別以及相互轉(zhuǎn)換方法的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • Python實(shí)現(xiàn)比較兩個(gè)文件夾中代碼變化的方法

    Python實(shí)現(xiàn)比較兩個(gè)文件夾中代碼變化的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)比較兩個(gè)文件夾中代碼變化的方法,實(shí)例分析了Python讀取文件夾中文件及字符串操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • Python中如何判斷是否為AJAX請(qǐng)求

    Python中如何判斷是否為AJAX請(qǐng)求

    在Web開(kāi)發(fā)中,AJAX請(qǐng)求是一種非常常見(jiàn)的與服務(wù)器進(jìn)行數(shù)據(jù)交互的方式,本文將深度解析如何在Python中判斷AJAX請(qǐng)求,有需要的小伙伴可以參考下
    2024-12-12

最新評(píng)論

桑日县| 桐柏县| 德安县| 鄢陵县| 西青区| 万年县| 蛟河市| 璧山县| 平乡县| 古蔺县| 疏附县| 保亭| 门头沟区| 连城县| 当阳市| 资源县| 行唐县| 视频| 丰原市| 南和县| 绥德县| 景谷| 疏附县| 凌云县| 许昌市| 祁门县| 宜兰市| 昂仁县| 河源市| 新昌县| 武定县| 岑溪市| 张家口市| 体育| 利津县| 泽州县| 嘉鱼县| 乳源| 新泰市| 临城县| 荣成市|