Я пытаюсь захватить изображение, размещенное на веб-сайте (например, imgur), и добавить его в docx.
Это мой исходный код (это часть функции. Я удалил его вплоть до соответствующих кодов):
from PIL import Image
from urllib.request import urlopen
thisParagraph = document.sections[0].paragraphs[0]
run = thisParagraph.add_run()
# imgLink is a direct link to the image. Something like https://i.imgur.com/<name>.jpg
# online is a parsed-in boolean to determine if the image link is from an image hosting site
# or from the local machine
if (online):
imgLinkData = urlopen(imgLink )
img = Image.open(imgLinkData )
width, height = img.size
else:
img = Image.open(imgLink )
width, height = img.size
imgLinkData = imgLink
if (width > 250) or (height > 250):
if (height > width):
run.add_picture(imgLinkData, width=Cm(3), height=Cm(4) )
else:
run.add_picture(imgLinkData, width=Cm(4), height=Cm(3) )
else:
run.add_picture(imgLinkData)
По большей части это работает, если imgLink указывает на мою локальную систему (ie. изображение размещено на моем P C).
Но если я ссылаюсь на ссылку url (online = True), я получаю различные типы исключений (в моей попытке исправить это) от io.UnsupportOperation
(поиск) до TypeError
(ожидаемый строковый аргумент, получен 'bytes'), причиной всегда является строка run.add_picture
.
Код в его нынешнем виде выдает исключение io.UnsupportOperation
.