python-docx設置圖片大小和對齊方式

2020-12-16 小梁學編程

在WORD軟體中,圖片大小一般可以採用點擊圖片,在「格式」菜單中「大小」裡設置圖片的高度和寬度,也可以通過滑鼠右鍵菜單「大小」菜單調出設置圖片大小的界面,見下圖。而在python-docx包中主要使用inline_shape對象的height和width屬性設置,筆記將分圖像大小設置和圖片對齊方式設置等2個方面進行敘述並製作了思維導圖。

WORD軟體設置圖片大小

01設置圖像大小

默認圖像大小

使用add_picture()方法可以添加圖片,具體用法可以參考文章python-docx圖像的添加與刪除。在添加圖片時可以不指定圖片高度和寬度,這時圖片默認是原圖大小。例如,新建來一個docx文檔並添加一個圖片代碼如下:

document = Document() # 新建docx文檔document.add_picture('111.jpg') # 插入111.jpg圖片不指定圖片大小document.save('test.docx') # 保存文檔添加圖片默認大小見下圖

圖片默認大小效果圖

設置圖片大小為固定值

設置圖片大小時可以設置固定值,不過要使用單位轉換,例如,可以設置為4釐米。一般要先導入docx.shared包中對 Cm,Inche等,然後賦值給inline_shape.height和inline_shape.width屬性。代碼如下

inline_shape = document.add_picture('111.jpg') # 插入111.jpg圖片,並獲取形狀對象inline_shape.height = Cm(4) # 設置圖片高度為4cminline_shape.width = Cm(4) # 設置圖片寬度為4cm設置圖像大小為4cm效果如下

圖片大小設置4cm效果圖

按照比例設置圖片

在設置圖片之前,首先要清楚inline_shape.height和inline_shape.width屬性的數據類型和含義,執行以下代碼:

document = Document('test.docx') # 讀取test.docxprint('原始圖像和當前圖像的高度', document.inline_shapes[0].height, document.inline_shapes[1].height) # 列印原始圖片大小print('當前圖像和原始圖像的高度比值', document.inline_shapes[1].height / document.inline_shapes[0].height) # 列印當前圖片高度比例print('當前圖像和原始圖像的寬度比值', document.inline_shapes[1].width / document.inline_shapes[0].width) # 列印當前圖片寬度比例運行結果見下圖

讀取圖像大小結果圖

可見圖像高度和寬度是int類型。text.docx中第2個圖片中高度比例和寬度都是當前圖像值與原始圖像值的比值。所以,按照比例設置圖片大小也就是將原始圖片寬度和高度與比例相乘得到當前圖像的大小,最後轉換成int類型。在text.docx文件中第2段添加圖片,圖片大小比例與上圖相同。那麼新插入的圖片是否和第2個圖像相同?見如下代碼:

inline_shape = document.paragraphs[1].add_run().add_picture('111.jpg') # 在文檔第2個段落裡添加111.jpg對圖片inline_shape.height = int(document.inline_shapes[0].height * 0.5022627985455307) # 按照比例設置圖片高度inline_shape.width = int(document.inline_shapes[0].width * 0.3557203287251082) # 按照比例設置圖片寬度document.save('test1.docx') # 保存為test1.docx按比例設置圖片大小見下圖

按比例設置圖片大小圖

在text1.docx文檔中生成的第3三個圖像與第2個圖像是一樣的。

按照固定比例設置圖像大小

在設置圖大小時經常用到固定比例,以便於圖像調整大小時不會發生變形。固定比例就是將圖片高度和寬度設置相同的比例,代碼如下:

inline_shape = document.paragraphs[1].add_run().add_picture('111.jpg') # 添加第3個圖片inline_shape.height = int(document.inline_shapes[0].height * 0.50) ) # 按照50%比例設置圖片高度inline_shape.width = int(document.inline_shapes[0].width * 0.50) # 按照50%比例設置圖片寬度設置圖片固定比例為50%效果如下圖

設置圖片固定比例為50%效果圖

在text1.docx文檔中實現來插入的第3個圖片高度和寬度比例都是50%。

固定比例的另外一種常用的方式就是「鎖定比例」。所謂鎖定比例就是當設置高度和寬度中的任何一個時,另外一個也會按照相同的比例進行設置。一般經過讀取原始圖片大高度或者寬度,設置新的值,計算比例,最後將比例設置寬度或者高度。例如,在test.docx文檔中添加第3個圖片,設置圖片高度為3cm,實行鎖定比例,代碼如下:

inline_shape = document.paragraphs[1].add_run().add_picture('111.jpg') # 添加第3個圖片,用於演示鎖定比例scale = inline_shape.height # 讀取圖片原始大小高度inline_shape.height = Cm(3) # 設置圖片高度為3cmscale = inline_shape.height / scale # 計算圖片比例inline_shape.width = int(document.inline_shapes[0].width * scale) # 按照比例設置圖片寬度設置圖片鎖定比例功能效果如下圖

鎖定比例功能效果圖

在text1.docx文檔中生成的第3個圖片高度和寬度都是30%。

02設置圖像對齊方式

在插入圖片時,經常使用run.add_picture()方法,本質上仍然是在段落中添加,所以,改變段落對齊對齊方式,效果也作用到圖片上。例如,如下代碼將test.docx文檔中對第2個圖片設置為居中對齊。

from docx.enum.text import WD_PARAGRAPH_ALIGNMENT # 導入段落對齊包document.paragraphs[1].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 設置文檔中的第2個段落居中圖片居中對齊設置效果圖

圖片居中對齊

文檔中第2個圖像實現了居中對齊。在WD_PARAGRAPH_ALIGNMENT可以實現LEFT、RIGHT、CENTER、JUSTY和DISTRIBUTE等5種對齊方式。含義如下:

WD_PARAGRAPH_ALIGNMENT.LEFT:左對齊WD_PARAGRAPH_ALIGNMENT.CENTER:居中對齊WD_PARAGRAPH_ALIGNMENT.RIGHT:右對齊WD_PARAGRAPH_ALIGNMENT.JUSTIFY:兩端對齊WD_PARAGRAPH_ALIGNMENT.DISTRIBUTE:分散對齊段落的對齊方式更多內容可以參考文章python-docx段落設置

筆者總結使用python-docx包設置圖片大小和對齊方式等2部分內容,製作來思維導圖。

python-docx設置圖片大小和對齊方式

相關焦點

  • python-docx段落設置
    在python-docx包中可以通過paragraph. alignment和paragraph.paragraph_format進行設置筆者將從段落的對齊方式、縮進、間距等3個部分進行敘述,最後製作了本篇文章的思維導圖。
  • 【Python基礎】python使用python-docx操作word
    1、python-docx庫介紹該模塊兒可以創建、修改Word(.docx)文件;python-docx使用官網:python-docx官網我們在安裝此模塊兒使用的是pip install python-docx,但是在導入的時候是import docx;2、Python讀取Word文檔內容注意:每進行一個操作,必須保存一下,否則等於白做;1)word文檔結構介紹在這裡插入圖片描述2)python-docx
  • Word 神器 python-docx
    開始之前,先簡單了解下 python-docxpython-docx 介紹python-docx 是用於創建可修改 微軟 Word 的一個 python 庫,提供全套的 Word 操作,是最常用的 Word 工具概念使用前,先了解幾個概念
  • python-docx字體設置
    而在python-docx包中設置字體主要使用docx.text.run類中的Font類來實現。02字形在docx文檔字形可以包括常規、加粗、斜體和加粗斜體四種類型,在python-docx包中主要通過font.bold
  • Python Word處理文檔:python-docx
    python-docx的文檔拆解python-docx將整個文檔看做是一個Document對象,其基本結構如下:在python-docx中,run是最基本的單位,每個run對象內的文本樣式都是一致的,也就是說,在從docx文件生成文檔對象時,python-docx會根據樣式的變化來將文本切分為一個個的Run對象。
  • python-docx設置中文字體
    在python-docx包中對WORD文檔字體的設置要使用font類,只需要更改font.name屬性就可以了。然而,對於中文字體的設置遠不是這麼簡單。')運行後test.docx效果為:字體設置的一般方式
  • python-docx節的添加、定位和分節符的設置
    在WORD文檔中添加節要使用「頁面布局」菜單裡「分隔符」按鈕分節符功能,見下圖;而在python-docx包中則要使用add_section()函數添加節,使用start_type來設定或者更改分節符。筆者將從節的添加、節的定位和分節符設置三個部分進行講述python-docx包對節的操作。
  • word圖片怎麼左對齊? word設置頁眉圖片左對齊圖文教程
    word圖片怎麼左對齊? word設置頁眉圖片左對齊圖文教程時間:2017-07-12 12:44   來源:三聯   責任編輯:沫朵 川北在線核心提示:原標題:word圖片怎麼左對齊? word設置頁眉圖片左對齊圖文教程 word圖片怎麼左對齊?
  • 使用 Python 操作 word文檔
    安裝官方文檔上支持3種安裝方式,使用最常見的一種進行即可。pip install python-docx環境支持:python2.6、2.7,or 3.4lxml >= 2.3.2快速開始由於Word文檔是二進位的文檔,因此創建和讀取所使用的方法有一些差別。
  • 一鍵設置Word中圖片對齊方式,超級簡單
    不知道大家在寫很多文章的時候經常需要插入圖片,有的時候,寫完之後才發現,圖片都不整齊,看起來非常亂,根據一般的文章結構,圖片通常都是居中對齊,那麼當我們點擊開始菜單下【居中】發現圖片和文字都是居中的。當你的圖片較多的時候如果一個一個的點,然後再設置是非常麻煩的事情,那麼如何一次性將所有圖片設置為居中對齊呢?
  • 聊聊python 辦公自動化之 Word(中)
    基本信息我們同樣使用 python-docx 這個依賴庫來對 Word 文檔進行讀取。首先我們來讀取文檔的基本信息,它們分別是:章節、頁邊距、頁眉頁腳邊距、頁面寬高、頁面方向等。在獲取文檔基礎信息之前,我們通過文檔路徑構建一個文檔對象 Document。
  • Python自動化辦公(內容)
    python自動化辦公(python操作Excel、Word、PDF、PPT)python使用openpyxl操作excel;python使用PyPDF2和pdfplumber操作pdf;python使用python-docx操作word;python使用python-pptx操作PPT;python如何自動收發郵件;python製作電話號碼歸屬地查詢工具;一:python
  • 別再問我Python怎麼操作Word了!
    前言在之前的自動化系列文章中,我們分別講解過👉Python操作Excel利器openpyxl,也講過👉Python操作PDF的幾種方式,今天我們將通過代碼講解Python操作Word文檔docx的常用方法。
  • python辦公自動化(二) | 讀取.txt、.data、.doc和.docx文檔的部分內容
    如果需要讀取的文件是.csv和.data文件,這類文件類似表格,with語句的讀取方式就相對複雜,因此需要採用pandas庫來讀取。但是,.doc格式比較老,python中沒有庫讀寫.doc,所以就需要一個系統工具的庫(這裡是win32com)來打開word應用,將.doc轉存為另存為.docx,再使用python-docx進行讀寫,以完成自動化操作。首先,導入必要的庫。
  • 表格中數據格式設置對齊方式與邊框底紋的設置—想像力電腦應用
    在前面的講解中,我們介紹了「word中快速應用表格樣式及表格樣式的修改」功能,現在我們講解「表格中數據格式設置對齊方式與排列方向的設置」。在對表格的操作過程中,如果能夠對表格中內容進行相應的設置,就可以讓表格更加整潔、美觀。設置表格中數據的格式主要包括設置表格文本對齊方式和改變文字排列方向。
  • 最全總結 | 聊聊 Python 辦公自動化之 Word(下)
    新增數字索引我們經常需要在文檔頁腳處添加頁面數字索引,可惜 python-docx 並沒有提供現有方法但是,在 stackoverflow 上找到實現的方式https://stackoverflow.com/questions/56658872/add-page-number-using-python-docx?
  • python-docx無法處理 「doc格式」 文件,於是我這樣做......
    對於Word文件,出現doc和docx的混合文件,又該怎麼處理。你可能會用VBA,但是不得不說,批量操作這些文件,還是要學Python,操作真的很簡單。為了增強文章的可讀性,我們分2篇文章講述這些問題。今天,我們講述的是如何將doc文件 轉換為 docx文件。
  • 第105天: Python 操作 Word
    字體引用項目列表我們平時在使用 Word 時,為了能展示更清晰,會用到項目符號和編號,將內容通過列表的方式展示出來,下面我們新建一個文件 word_2.py 並編寫如下代碼:# word_2.py')現在通過命令 python word_2.py 運行程序看下效果:項目列表圖片和表格
  • 不可不知的段落屬性之——對齊方式
    在【段落】對話框中的【縮進和間距】選項卡中,也可以設置段落的對齊方式:需要說明的是,段落的對齊方式會和段落的縮進等屬性疊加,即同時具備多種屬性,因此,在同時設置縮進和對齊的時候,一定要注意。可以理解為段落中的字符對象在行的層面中垂直方向上的對齊,因為平時常見的文本字符在同一段落中大小都是一致的,因此,這種對齊設置就少有人注意了。該對齊方式的設置在中【段落】-【中文版式】選項卡中的【文本對齊方式】選項中可以看到。
  • 【他山之石】Python和Excel終於可以互通了,自動化辦公實操寶典速來下載!
    設置字體樣式2. 設置對齊樣式水平對齊:distributed, justify, center, left, fill, centerContinuous, right, general垂直對齊:bottom, distributed, justify, center, top3.