Как работать с байтами изображения на JavaScript или как переписать с Python на JavaScript?

Что я хочу сделать на JavaScript? Открываю Word(doc) документ с помощью ActiveXObject('Word.Application'), нахожу InlilneShape, использую property shape.Range.EnhMetaFileBits чтобы получить байты изображения и пытаюсь преобразовать его в base64, чтобы показать в браузере.

Проблема. Согласно документации
The EnhMetaFileBits property returns an array of bytes, which can be used with the Microsoft Windows 32 Application Programming Interface from within the Microsoft Visual Basic or Microsoft C++ development environment.
Мне кажется, я не получаю от EnhMetaFileBits байтов или массив байтов. Как получить байты и преобразовать их в base64? Может подскажете книги о работе с байтами на JavaScript.

function paragraphToHtml(paragraph) {
    for (let i = 1; i <= paragraph.Range.InlineShapes.Count; i++) {
        let shape = paragraph.Range.InlineShapes(i);
        let imageBits = shape.Range.EnhMetaFileBits;
        // Как работать с imageBits?
        console.log(typeof imageBits === 'unknown')  // true
        console.log(imageBits)  // ничего непоказывает
        // Что дальше делать?
    }
}


Рабочий код на Python, которого надо переписать на JScript
from PIL import Image
from io import BytesIO

def paragraph_to_html(para):
    img_temp = '<img align="Middle" src="data:image/png;base64,{0}" />'
    for shape in para.Range.InlineShapes:
        wmfim = Image.open(BytesIO(shape.Range.EnhMetaFileBits))
        bimage = BytesIO()
        wmfim.save(bimage, format='png')
        img_str = base64.b64encode(bimage.getvalue())
        shape.Range.Text = img_temp.format(img_str.decode('ascii'))
    return para.Range.Text.strip()


  • Вопрос задан
  • 325 просмотров
Решения вопроса 1
AlexPancho
@AlexPancho
Какой то страшный оверпавер...
В python есть библиотека для работы с докх, которая умеет искать в документе
https://python-docx.readthedocs.io/en/latest/user/...
https://stackoverflow.com/questions/25228106/how-t...
найдите ею вашу картинку и сохраняёте - хоть в бейс, хоть в ейс...
Кстати, докх - это зипованый набор хмл-папок, и можно еще проще всевытаскивать, если знать как...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
demon416nds
@demon416nds
Разработчик на чем попало
это не взлетит нигде кроме осла
и то старого
таки зачем заниматься извращениями?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы