使用 pdfmake.js 在列中自动调整宽度图像

Auto width images in columns using pdfmake.js

我正在尝试创建一个简单的 2-up 图像布局,因此每张图像在两列中占页面宽度的 50%,但是 'auto' 或“*”宽度似乎不适用于图片。

有没有办法在不为图像设置明确宽度的情况下实现这一点?

或者如果不能,是否可以获取页面的宽度以便我自己计算?

编辑:

我试过的代码的简化版本是:

var dd = {
content: [
    {
        columns: [
            {
                image: 'sampleImage.jpg',
                width: 'auto'
            },
            {
                image: 'sampleImage.jpg',
                width: '*'
            }
        ]
    }
]
}

使用这些自动宽度,我在控制台中得到 Uncaught Error: unsupported number: NaN。但是,如果我将它们更改为固定宽度,它们就可以正常工作。

我不确定库中是否提供此功能。人们在 pdfmake github 问题页面上提出了这个问题,并且仍然开放。

不过你还是可以自己实现,取页宽

var pageWidth = 900;
var pageHeigth = 1000;

var docDefinition = {
    pageSize: {
        width: pageWidth,
        height: pageHeigth
    },
    pageMargins: [10, 10, 10, 10],
    content: [{
        image: imageEncodedData,
        width: pageWidth / 2, // for 50 % image width
        height: pageHeigth / 2, // change the numbers accordingly
        absolutePosition: {  // absolute positioning if required
            x: 270,
            y: 45
        }
    }
};