使用jsPDF时设置pdf页面宽度/高度

时间:2014-06-20 20:43:47

标签: javascript html css pdf jspdf

我正在尝试使用jsPDF lib生成pdf。我能够构建pdf,但有没有办法将页面大小传递给pdf的每个页面?我目前正在输出pdf,并在我添加的每个“图像”下方留出一些额外的空白区域。

这是pdf上其中一个页面的屏幕截图。它有图像,然后有白色空间填充该页面的其余部分。我的右侧也有空白区域,因为宽度也比我的图像宽。宽度不像高度问题那么大。我确信我可以通过在下一行设置x,y值来扫描图像:

pdf.addImage(img, 'JPEG', 0, 0);

但这对我的身高无济于事。

screen shot of the pdf

我目前只是将图像分成每页pdf 1,我希望所有页面的大小相同。我会知道图像的大小,并希望像这样传递选项:

var pdf = new jsPDF(options, '', '', '');

pdf.addPage(options);

是否可以设置pdf的宽度和高度或pdf的各个页面?

1 个答案:

答案 0 :(得分:4)

您应该能够在创建pdf时选择足够接近您想要的页面格式,如下所示:

var pdf = new jsPDF("l", "pt", "letter");

第三个参数来自文件中jsPDF声明顶部的pageFormats对象。

此外,您应该能够缩放图像,使其在页面上填充适当的大小。如果您查看addImage函数的原型,您将看到可以传递:

addImage(imageData, format, x, y, w, h, alias, compression);

其中w和h是图像的预期范围。根据我的经验,jsPDF从源头缩小图像没有问题,所以我认为没有理由不能扩展它。

编辑:

请注意,如果您打算将pdf创建为var pdf = new jsPDF(options, '', '', '');,则可以将选项设置为:

options = {
    orientation: "l",
    unit: "pt",
    format: "letter"
};