如何批量調整word中插入的圖片大小?

想把這些圖片大小調整成一樣的。


謝邀,對不起死了這麼久沒回答這問題....事情太多..

1.說到調整大小 @大雷 ,我做ppt的時候一般是框一堆自己插入的形狀在格式最右邊那調整,剛試了下圖片,好像也可以這麼來。

2.然後我看了下word2013.好像也有這麼個東西

就是最右邊,大小那個。不過好像是鎖定比例的...

3.不過你點大小右下角那個朝向右下角的小箭頭好像就可以設定了

-----------------------------------------------------

然後我看了下其他回答好像還有個選中問題 @呂海

你可以打開 開始-編輯-選擇-選擇窗格,然後你會發現。。

只會顯示圖片的好像,然後你在選擇窗格那把這群東西框一下(或者左鍵點起始那張加shift再左鍵點結束那張),點下上面圖片工具:格式按照之前操作就可以了。

-------------------------------------------------------------------------------------------------

=。=我只是一枚PPT工匠,不太懂比較高端的辦法,希望對答主有幫助^_^

另外感謝QQ截圖能直接粘貼過來...


調整完一個後,選中其他的按f4,不用謝我,我叫小學生


使用宏,alt+F8進入宏查看界面,點擊創建,輸入以下代碼,設置你要的圖片高、寬,單位:厘米。f5或保存後退出宏編輯界面。

然後alt+F8進入宏查看界面,點擊運行即可。

注意:全文檔的圖片都會被統一修改大小。請謹慎操作或備份後操作!!!!!

Sub 批量設置圖片大小()
"
" Macro 宏
"
"
Myheigth = 12
Mywidth = 8
On Error Resume Next "忽略錯誤
For Each iShape In ActiveDocument.InlineShapes
iShape.Height = 28.345 * Myheigth "設置圖片高度為任意cm
iShape.Width = 28.345 * Mywidth "設置圖片寬度
Next
For Each Shape In ActiveDocument.Shapes
Shape.Height = 28.345 * Myheigth "設置圖片高度為任意cm
Shape.Width = 28.345 * Mywidth "設置圖片寬度
Next
End Sub


竟然又有人邀請我回答 Word 相關問題!討厭死了有沒有!真有這麼樣的需求我會:

1. 導出成網頁,寫個 Python 腳本處理掉圖片,然後導回去

2. 拿 Python 的 pywin32 模塊調 COM,操縱 Word 把圖調整好

不過,你的 Word 里有幾百張圖片呀?


請戳:

WORD 格式刷的問題

不客氣!


按照 @依雲 答主的思路實現了以下,水平實在有限,還望拋磚引玉:

一開始轉到html去操作files裡面的圖片,resize到原圖一半轉回到word一看結果居然是:僅僅是解析度下降但在word中的size不變!

詢問之後,才發現要操作的是html裡面tag的attribute的...

我用beautifulsoup4+regular expression(我都不太懂額)解析出以v:shape開頭的tag,如果超過則按照最大寬度等比例縮小高寬,結果如下圖:

以下是代碼,希望批評指正!

#%% convert word.doc to html then manage its image size before converting back
from win32com import client as wc # open word doc
from os import path, remove
import shutil
from bs4 import BeautifulSoup
import re
#% convert word to html
work_path = r"C:Usersyour_path"
file_doc1 = u"your_doc.docx"
file_doc2 = u"your_doc-size_pic.doc"
file_xml = "temp.html"
files_path = path.join(work_path,file_xml.replace("html", "files"))
max_width = 500
# Here I alow the max width of picture in doc is 900Pt.
# but you can choose other parameters according to requirement.
word = wc.Dispatch("Word.Application")
doc1 = word.Documents.Open(path.join(work_path, file_doc1))
doc1.SaveAs(path.join(work_path,file_xml), 8)
doc1.Close()

#%% manipulate html to resize picture before converting back to word
word_soup = BeautifulSoup(open(path.join(work_path, file_xml)),"lxml")
# find tag starts and ends with "v:shape"
for tag in word_soup.find_all(re.compile(r"^v:shape$")):
# print tag["id"],": ", tag["style"][:-41]
# find width and height start and end with ? then convert it to number
width = float(re.findall(re.compile(r"(?&<=width:).*?(?=pt)"), tag["style"])[0]) # print width if width &> max_width:
height = float(re.findall(re.compile(r"(?&<=height:).*?(?=pt)"), tag["style"])[0]) * (max_width / width) # match float or interger number start with width and repalce it with max_width temp_str1 = re.sub(re.compile(r"^width:[0-9]*.?[0-9]+"), ("width:" + ("%d" %max_width)), tag["style"]) temp_str2 = re.sub(re.compile(r"height:[0-9]*.?[0-9]+"), ("height:"+ ("%d" %height)), temp_str1) tag["style"] = temp_str2 print tag["style"] #%% remove replace original html with new one then write it back to word file remove(path.join(work_path, file_xml)) with open(file_xml, "wb") as file: file.write(word_soup.prettify(word_soup.original_encoding)) doc2 = word.Documents.Add(path.join(work_path, file_xml)) doc2.SaveAs(path.join(work_path, file_doc2)) doc2.Close() word.Quit() remove(path.join(work_path, file_xml)) shutil.rmtree(path.join(work_path, files_path))


感謝小學生


樓主這有錯,也就是字元串轉成二進才能保存

file.write(bytes(word_soup.prettify(word_soup.original_encoding),encoding ="utf-8")


vb宏容易實現,百度上有很多答案


其實很簡單,不需要什麼代碼,按ctrl或者拉選擇框把圖片都選中,然後在任意一張圖上右鍵,在大小和格式里調大小,改完就立即生效了


弄不來,我焦躁


所有的理論都基於實踐基礎,分享一下我的「word批量修改圖片大小」

3個步驟,

1、紙張改成橫向

2、頁面頁邊距上5厘米,下5厘米,左右均為0

3、導入圖片。


推薦閱讀:

用latex編輯的公式如何插入word?
如何在 Photoshop 里為文本設置1.5倍行距?
word 同一行內的文字分別向兩端對齊?
為什麼word2016裡面的mathtype公式雙擊後沒有許可權編輯了?
在word2013中,用mathtype編輯的公式和文字對不齊啊,怎麼辦?

TAG:MicrosoftOffice | MicrosoftWord | Office文檔 | 文字編輯 |