我几乎已经掌握了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,横向格式。