使用phantomjs-node导出PDF:paperSize和vievportSize

时间:2016-10-03 14:37:31

标签: node.js pdf phantomjs

我几乎已经掌握了PhantomJS的PDF导出功能。只要PDF应为14.67 * 11.33英寸。

我正在使用node phantom package,以便从我的NodeJS后端创建并将本地网站呈现为PDF。

我将pageSize和viewportSize设置为'Letter'。

我在加载页面之前和之后设置了pageSize和viewportSize。

我将html,body设置为确切的尺寸。字面上没有任何影响输出大小。在我的Windows开发机器上,这似乎是固定的14.67 * 11.33。

内容本身的大小正确(输出左上角的“Letter,landscape”11 * 8.5英寸)。

我接近使用第三方PDF工具并删除了文档的其余部分。但我相信有更聪明的方法可以做到这一点。

这里有一点css:

*, *:before, *:after {
    box-sizing: border-box;
    -webkit-box-sizing: border-box;
}

html, body {
    width: 11in;
    height: 8.5in;
    padding: 0;
    margin: 0;
    font-family: 'Roboto', 'Helvetica', 'Arial', sans-serif;
}

.page {
    width: 11in;
    height: 8.5in;
    padding: 0.3in;
    margin: 0;
    border: 1px solid black;
}

这是一些PhantomJS魔法。

page.paperSize = {
    format: 'Letter',
    orientation: 'landscape'
};

page.viewportSize = { width: 1056, height: 816 };

page.open(url, function () {
    page.render('output.pdf');
});

这是由此生成的PDF的屏幕截图。黑色边框采用正确的Letter,横向格式。

enter image description here

0 个答案:

没有答案