【问题标题】:setting pdf page width/height when using jsPDF使用jsPDF时设置pdf页面宽度/高度
【发布时间】:2014-08-11 16:33:25
【问题描述】:

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

这里是 pdf 上其中一页的屏幕截图。它有图像,然后有填充该页面其余部分的空白区域。我在右边也有空白,因为宽度也比我的图像宽。宽度问题不像高度问题那么严重。我确定我可以通过在以下行设置 x、y 值来搜索图像:

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

但这对我的身高没有帮助。

我目前只是将图像抽取到每页 1 个 pdf 文件中,我希望所有页面的大小都相同。我会知道图像的大小,并希望像这样传递选项:

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

pdf.addPage(options);

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

【问题讨论】:

    标签: javascript html css pdf jspdf


    【解决方案1】:

    在创建 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"
    };
    

    【讨论】:

    • 什么是别名和压缩,我的意思是有什么类型的变量?
    • @KunjanShah 我相信 alias 是一个字符串,您将使用它来为 PDF 中的图像起别名,压缩是一个可以是“none”、“fast”、“medium”的字符串,或“慢”(大写无关紧要)。这些值可以在source 中找到
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 2018-02-17
    • 1970-01-01
    相关资源
    最近更新 更多