Как заставить docx. js использовать естественную высоту и ширину изображения? - PullRequest
1 голос
/ 04 марта 2020

Я получаю двоичные данные изображения как ArrayBuffer и вставляю их в документ, используя docx. js:

getImageBinaryDataAsArrayBuffer().then(function (imageBuffer) {
    var doc = new docx.Document();
    var image = docx.Media.addImage(doc, imageBuffer);
    doc.addSection({
        children: [
            new docx.Paragraph({
                children: [image],
                alignment: docx.AlignmentType.CENTER
            }),
        ]
    });
    docx.Packer.toBlob(doc).then(function (blob) {
        // save the doc somewhere
    })
}).catch(function (err) {
    console.log(err);
});

Это работает, но кажется, что размер изображения по умолчанию 100x100, и не сохраняет соотношение сторон. В документации docx. js для изображений похоже, что вы можете указать высоту и ширину при добавлении изображения в do c:

Media.addImage(doc, [IMAGE_BUFFER], [WIDTH], [HEIGHT], [POSITION_OPTIONS]);

, но я не знаю естественную высоту и ширину изображения, так как все, с чем я работаю, это ArrayBuffer. (Можете ли вы определить высоту и ширину изображения по данным ArrayBuffer? Моя интуиция говорит нет ...)

Есть ли способ указать docx. js, чтобы использовать естественную высоту и ширину изображения? Или хотя бы сохранить соотношение сторон?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...