Python在Word文檔中插入圖片的三種方式
引言
Word不僅僅是一個(gè)文字處理工具,它還為用戶提供了圖片插入功能,以增強(qiáng)文檔的表現(xiàn)力。恰當(dāng)?shù)膱D片不僅能夠直觀地解釋復(fù)雜的概念,還能顯著提升文檔的吸引力,使信息傳達(dá)更加有效。在學(xué)術(shù)研究、項(xiàng)目報(bào)告和技術(shù)文檔中,一張好的圖片往往能夠起到畫龍點(diǎn)睛的作用,吸引讀者的注意力并加深他們的理解。這篇博客將介紹使用Python在Word文檔中插入圖片的三種方式:插入圖片到段落、插入圖片到指定位置和插入圖片到每一頁(yè)。
- Python 插入圖片到Word文檔的段落
- Python 插入圖片到Word文檔的指定位置
- Python 插入圖片到Word文檔的每一頁(yè)
使用工具
要在Python中插入圖片到Word文檔,需要使用合適的Word文檔處理庫(kù)。本文使用的庫(kù)是Spire.Doc for Python,該庫(kù)允許開發(fā)者通過(guò) Python 代碼操作 Word 文檔,包括在文檔中插入、替換和刪除圖片等。
你可以通過(guò)在終端中運(yùn)行以下命令從 PyPI 安裝 Spire.Doc for Python:
pip install Spire.Doc
Python 插入圖片到Word文檔的段落
最簡(jiǎn)單的插入圖片的方法是將其添加到現(xiàn)有的段落中。這使得圖片成為段落的一部分,并根據(jù)段落的文本流自動(dòng)調(diào)整其位置。
下面是插入圖片到Word文檔的段落的具體步驟:
- 創(chuàng)建 Document 類的對(duì)象。
- 使用 Document.AddSection() 方法添加一個(gè)節(jié)。
- 使用 Section.AddParagraph() 方法添加一個(gè)段落。
- 使用 Paragraph.AppendPicture() 方法向段落添加圖片。
- 設(shè)置圖片的寬度、高度和文本環(huán)繞樣式。
- 使用 Document.SaveToFile() 方法保存結(jié)果文檔。
實(shí)現(xiàn)代碼:
from spire.doc import *
from spire.doc.common import *
try:
# 創(chuàng)建 Document 對(duì)象
document = Document()
# 添加節(jié)
section = document.AddSection()
# 設(shè)置頁(yè)面邊距
section.PageSetup.Margins.All = 72.0
# 添加標(biāo)題段落
title_paragraph = section.AddParagraph()
# 設(shè)置段落文本及其格式
text_range = title_paragraph.AppendText("Python 編程語(yǔ)言簡(jiǎn)介")
text_range.CharacterFormat.FontName = "宋體"
text_range.CharacterFormat.TextColor = Color.get_RoyalBlue()
title_paragraph.ApplyStyle(BuiltinStyle.Heading1)
title_paragraph.Format.HorizontalAlignment = HorizontalAlignment.Center
title_paragraph.Format.AfterSpacing = 18
# 添加內(nèi)容段落
content_paragraph = section.AddParagraph()
# 設(shè)置段落文本及其格式
text_range = content_paragraph.AppendText("Python是一種功能強(qiáng)大且用途廣泛的編程語(yǔ)言,近年來(lái)受到越來(lái)越多的青睞。作為一種解釋型高級(jí)語(yǔ)言,Python以其簡(jiǎn)潔、易讀和易用的特點(diǎn)著稱,既適合初學(xué)者入門,也深受經(jīng)驗(yàn)豐富的開發(fā)者喜愛。其簡(jiǎn)潔直觀的語(yǔ)法結(jié)合強(qiáng)大的標(biāo)準(zhǔn)庫(kù),以及對(duì)多種編程范式的支持,使開發(fā)者能夠高效完成從網(wǎng)頁(yè)開發(fā)、數(shù)據(jù)分析到機(jī)器學(xué)習(xí)和科學(xué)計(jì)算等多種任務(wù)。借助跨平臺(tái)的兼容性、活躍龐大的社區(qū),以及日益豐富的第三方庫(kù)和工具生態(tài),Python已成為全球最受歡迎、最具影響力的編程語(yǔ)言之一。")
text_range.CharacterFormat.FontName = "宋體"
text_range.CharacterFormat.FontSize = 12
content_paragraph.Format.HorizontalAlignment = HorizontalAlignment.Justify
# 插入圖片
image = content_paragraph.AppendPicture("Python.png")
# 設(shè)置圖片寬度和高度
image.Width = 100
image.Height = 100
# 設(shè)置圖片的文本環(huán)繞樣式
image.TextWrappingStyle = TextWrappingStyle.Square
# 保存文檔
document.SaveToFile("插入圖片到段落.docx", FileFormat.Docx2019)
print("文檔保存成功。")
document.Close()
except Exception as e:
print(f"處理文檔時(shí)出錯(cuò): {e}")
Python 插入圖片到Word文檔的指定位置
有時(shí)我們需要將圖片放置在文檔的具體位置,而不是讓它跟隨段落文本流動(dòng)。這可以通過(guò)設(shè)置圖片的位置屬性來(lái)實(shí)現(xiàn)。
下面是插入圖片到Word文檔的指定位置的具體步驟:
- 創(chuàng)建 Document 類的對(duì)象。
- 使用 Document.AddSection() 方法添加一個(gè)節(jié)。
- 使用 Section.AddParagraph() 方法添加段落。
- 使用 Paragraph.AppendPicture() 方法向段落添加圖片。
- 設(shè)置圖片的寬度、高度及文本環(huán)繞樣式。
- 使用圖片的 HorizontalOrigin 和 VerticalOrigin 屬性設(shè)置其水平和垂直起點(diǎn)。
- 使用圖片的 HorizontalPosition 和 VerticalPosition 屬性設(shè)置絕對(duì)水平和垂直位置。
- 使用圖片的 HorizontalAlignment 和 VerticalAlignment 屬性設(shè)置水平和垂直對(duì)齊方式。
- 使用 Document.SaveToFile() 方法保存結(jié)果文檔。
實(shí)現(xiàn)代碼:
from spire.doc import *
from spire.doc.common import *
try:
# 創(chuàng)建 Document 對(duì)象
document = Document()
# 添加節(jié)
section = document.AddSection()
# 設(shè)置頁(yè)面邊距
section.PageSetup.Margins.All = 72
# 向節(jié)中添加標(biāo)題段落
title_paragraph = section.AddParagraph()
# 設(shè)置段落的文本和格式
text_range = title_paragraph.AppendText("Python 編程語(yǔ)言簡(jiǎn)介")
text_range.CharacterFormat.FontName = "宋體"
text_range.CharacterFormat.TextColor = Color.get_RoyalBlue()
title_paragraph.ApplyStyle(BuiltinStyle.Heading1)
title_paragraph.Format.HorizontalAlignment = HorizontalAlignment.Center
title_paragraph.Format.AfterSpacing = 18
# 向節(jié)中添加段落
paragraph = section.AddParagraph()
# 向段落中添加內(nèi)嵌圖片
image = paragraph.AppendPicture("Python.png")
# 設(shè)置圖片寬度和高度
image.Width = 100
image.Height = 100
# 設(shè)置圖片的文字環(huán)繞樣式(注意:當(dāng)文字環(huán)繞樣式為Inline時(shí),圖片無(wú)法設(shè)置絕對(duì)位置)
image.TextWrappingStyle = TextWrappingStyle.Square
# 設(shè)置圖片的水平和垂直起點(diǎn) (在此代碼中,圖片的水平起點(diǎn)為頁(yè)面左側(cè),水平偏移 200 磅;垂直起點(diǎn)為段落,垂直偏移 200 磅)
image.HorizontalOrigin = HorizontalOrigin.Page
image.VerticalOrigin = VerticalOrigin.Paragraph
# 設(shè)置圖片的絕對(duì)水平和垂直位置
image.HorizontalPosition = 200
image.VerticalPosition = 200
# 設(shè)置圖片的水平和垂直對(duì)齊方式
image.HorizontalAlignment = ShapeHorizontalAlignment.Center
image.VerticalAlignment = ShapeVerticalAlignment.Center
# 保存文檔
document.SaveToFile("插入圖片到指定位置.docx", FileFormat.Docx2019)
print("文檔保存成功。")
document.Close()
except Exception as e:
print(f"處理文檔時(shí)出錯(cuò): {e}")
Python 插入圖片到Word文檔的每一頁(yè)
在某些情況下,我們可能需要將圖片插入到 Word 文檔的每一頁(yè),比如我們希望在整個(gè)文檔的每一頁(yè)展示公司Logo或者品牌圖片。Word文檔本身是流式布局,沒有頁(yè)的概念,但可以通過(guò)將文檔轉(zhuǎn)換為固定布局來(lái)實(shí)現(xiàn)這一功能。
下面是插入圖片到Word文檔的每一頁(yè)的具體步驟:
- 創(chuàng)建 Document 類的對(duì)象。
- 使用 Document.LoadFromFile() 方法加載現(xiàn)有的 Word 文檔。
- 創(chuàng)建 FixedLayoutDocument 類的對(duì)象,用于將文檔轉(zhuǎn)換為固定布局。
- 使用 FixedLayoutDocument.Pages 屬性獲取文檔的頁(yè)面。
- 循環(huán)遍歷頁(yè)面。
- 對(duì)于每個(gè)頁(yè)面,使用 FixedLayoutPage.GetChildEntities() 方法獲取頁(yè)面上的特定行,然后使用 FixedLayoutLine.Paragraph 屬性獲取該行所在的段落。
- 使用 Paragraph.AppendPicture() 方法向段落中添加圖片。
- 設(shè)置圖片的寬度、高度、文本環(huán)繞樣式、水平和垂直起點(diǎn)、位置及對(duì)齊方式。
- 使用 Document.SaveToFile() 方法保存結(jié)果文檔。
實(shí)現(xiàn)代碼:
from spire.doc import *
from spire.doc.common import *
try:
# 創(chuàng)建 Document 對(duì)象
document = Document()
# 加載 Word 文檔
document.LoadFromFile("人工智能.docx")
# 創(chuàng)建 FixedLayoutDocument 對(duì)象,將文檔轉(zhuǎn)換為固定布局文檔
layoutDoc = FixedLayoutDocument(document)
# 獲取文檔的頁(yè)面
pages = layoutDoc.Pages
# 遍歷文檔的頁(yè)面
for page_index in range(pages.Count):
page = pages[page_index]
# 獲取頁(yè)面的行
lines = page.GetChildEntities(LayoutElementType.Line, True)
if lines:
# 獲取第一行的段落
paragraph = lines[0].Paragraph
# 向段落添加圖片
image = paragraph.AppendPicture("Logo.png")
# 設(shè)置圖片的寬度和高度
image.Width = 100
image.Height = 100
# 設(shè)置圖片的文本環(huán)繞樣式
image.TextWrappingStyle = TextWrappingStyle.Behind
# 設(shè)置圖片的水平和垂直起點(diǎn)
image.HorizontalOrigin = HorizontalOrigin.Page
image.VerticalOrigin = VerticalOrigin.Paragraph
# 設(shè)置圖片的絕對(duì)水平和垂直位置
image.HorizontalPosition = 200
image.VerticalPosition = 150
# 設(shè)置圖片的水平和垂直對(duì)齊方式
image.HorizontalAlignment = ShapeHorizontalAlignment.Center
image.VerticalAlignment = ShapeVerticalAlignment.Center
# 將文檔保存到文件
document.SaveToFile("插入圖片到每一頁(yè).docx", FileFormat.Docx2019)
print("文檔保存成功。")
document.Close()
except Exception as e:
print(f"處理文檔時(shí)出錯(cuò): {e}")
由于篇幅問題,本文僅介紹了使用Python在Word中插入圖片的三種方法。實(shí)際上,除了這三種方法之外,你還可以通過(guò)將圖片插入到頁(yè)眉或頁(yè)腳來(lái)實(shí)現(xiàn)給每頁(yè)添加圖片,或者插入圖片到其他Word元素,如表格等。
以上就是Python在Word文檔中插入圖片的三種方式的詳細(xì)內(nèi)容,更多關(guān)于Python Word插入圖片的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python多進(jìn)程庫(kù)multiprocessing中進(jìn)程池Pool類的使用詳解
這篇文章主要介紹了Python多進(jìn)程庫(kù)multiprocessing中進(jìn)程池Pool類的使用詳解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
Python的列表推導(dǎo)式實(shí)例詳細(xì)解析
這篇文章主要介紹了Python的列表推導(dǎo)式實(shí)例詳細(xì)解析,列表推導(dǎo)式是Python構(gòu)建列表list的一種快捷方式,可以使用簡(jiǎn)潔的代碼就創(chuàng)建出一個(gè)列表,需要的朋友可以參考下2023-07-07
Python使用PIL庫(kù)將PNG圖片轉(zhuǎn)換為ICO圖標(biāo)的示例代碼
在軟件開發(fā)和網(wǎng)站設(shè)計(jì)中,ICO圖標(biāo)是一種常用的圖像格式,特別適用于應(yīng)用程序圖標(biāo)、網(wǎng)頁(yè)收藏夾圖標(biāo)等場(chǎng)景,本文將介紹如何使用Python的PIL庫(kù)將PNG圖片轉(zhuǎn)換為ICO格式的圖標(biāo)文件,需要的朋友可以參考下2025-03-03
Python程序包的構(gòu)建和發(fā)布過(guò)程示例詳解
Python程序包的構(gòu)建和發(fā)布過(guò)程,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2019-06-06
Pygame實(shí)戰(zhàn)練習(xí)之紙牌21點(diǎn)游戲
21點(diǎn)想必是很多人童年時(shí)期的經(jīng)典游戲,我們依舊能記得抱個(gè)老人機(jī)娛樂的場(chǎng)景,下面這篇文章主要給大家介紹了關(guān)于如何利用python寫一個(gè)簡(jiǎn)單的21點(diǎn)小游戲的相關(guān)資料,需要的朋友可以參考下2021-09-09

