node.js – html-pdf npm库在windows和ubuntu上提供不同的输出

前端之家收集整理的这篇文章主要介绍了node.js – html-pdf npm库在windows和ubuntu上提供不同的输出前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用基于Phantom JS的 https://www.npmjs.com/package/html-pdf库,它在内部使用webkit.我正在粘贴虚拟HTML& JS代码(将这些文件保存在1个文件夹中)并附加输出屏幕截图.

我面临的问题是在Windows上生成的PDF顶部有一些额外的空间(红色以上的空白区域),我无法摆脱它.

这是一个讨论类似问题的论坛(过时),https://groups.google.com/forum/#!topic/phantomjs/YQIyxLWhmr0.

input.html

<!DOCTYPE html>
<html lang="en">

<head>
    <Meta charset="UTF-8">
</head>

<body>
    <div id="pageHeader" style="border-style: solid;border-width: 2px;color:red;">
        header   <br/> header       <br/> header   <br/> header
    </div>
<div id="pageContent" style="border-style: solid;border-width: 2px;color:green;">
    <div>
        body    <br/> body    <br/> body
    </div>
</div>

JS
(你需要路径,fs,把手,html-pdf npm包)

var path = require('path');
var fs = require('fs');
var handlebars = require('handlebars');
var pdf = require('html-pdf');

saveHtml();

function saveHtml() {

fs.readFile('input.html','utf-8',{
    flag: 'w'
},function(error,source) {
    handlebars.registerHelper('custom_title',function(title) {
        return title;
    })

    var template = handlebars.compile(source);
    var data = {};
    var html = template(data);

    var options = {
        'format': 'A4','base': "file://",/* You can give more options like height,width,border */
    };
    pdf.create(html,options).toFile('./output.pdf',function(err,res) {
        if (err) {
            console.log('err pdf');
            return;
        } else {
            console.log('no err pdf');
            return;
        }
    });
});

}

在ubuntu上输出

窗口输出

Windows中顶部的额外空间(红色上方的空白区域)是个问题.

那些没用的东西
1.添加
“边界”: {
“top”:“0px”//或mm,cm,in
}
到JS文件中的选项

https://www.npmjs.com/package/html-pdf#options

>给予固定的“身高”:“10.5in”& “width”:JS文件中的选项中的“8in”
>使利润率​​最高& padding-top到0px / -50px到pageHeader div.
>覆盖保证金顶部&在bootstrap.css中@media print中将主体填充为0px / -20px
>给头部固定高度

任何帮助将不胜感激.谢谢.

解决方法

您可以手动将CSS属性设置为html标记.在我的情况下,我在Windows中开发模板并将其部署到Linux(Heroku)时遇到问题.

我在标签html中放了zoom:0.7,现在两个视图看起来都一样.

html{zoom: 0.7;}
原文链接:https://www.f2er.com/nodejs/241118.html

猜你在找的Node.js相关文章