나쁜 영어로 죄송합니다.jpg와 python을 사용하여 .docx 파일의 대체 문자열
.docx 파일의 .jpg 파일로 문자열을 대체하려고합니다. 먼저 JPEG를 BMP로 변환하고 클립 보드로 이동 한 다음 Copy PIL/PILLOW Image to Windows Clipboard을 따른 다음 Findx.Execute를 "^ c"와 함께 사용하여 docx 파일의 특수 문자열을 대체하십시오.
대체는 잘되지만, .docx 파일에 폭 15.42cm의 이미지를 붙여 넣습니다. im.resize를 사용하여 크기를 조정하려고 시도했지만 작은 이미지보다는 큰 흐림 이미지로 끝납니다. 나는 어떻게 그것을 더 작게 만들 수 있 었는가?
저는 python2.7.2와 Win7을 사용하고 있습니다. 고마워.
from win32com.client import Dispatch
from cStringIO import StringIO
import win32clipboard
import win32com
from PIL import Image
def setImageToClipboard(clip_type, data):
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardData(clip_type, data)
win32clipboard.CloseClipboard()
filepath = 'd:/tmp.jpg'
im = Image.open(filepath)
#im = im.resize((10, 10))
output = StringIO()
im.convert("RGB").save(output, "BMP")
data = output.getvalue()[14:]
output.close()
w = win32com.client.Dispatch('Word.Application')
w.Visible = 1
w.DisplayAlerts = 0
doc = w.Documents.Open("d:/clipboard_test.docx")
search = "TEST"
setImageToClipboard(win32clipboard.CF_DIB, data)
w.Selection.Find.ClearFormatting()
w.Selection.Find.Replacement.ClearFormatting()
w.Selection.Find.Execute("TEST", False, True, False, False, False, True, 1, True, ReplaceWith="^c", Replace=2000)
doc.SaveAs("d:/clipboard_test2.docx")
doc.Close()
w.Quit()
THX ~ python-docx로 완벽하게 작동합니다. – sKaelthas