Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 渲染pdf时,PhantomJs将页眉边距设置为0_Javascript_Css_Node.js_Pdf_Phantomjs - Fatal编程技术网

Javascript 渲染pdf时,PhantomJs将页眉边距设置为0

Javascript 渲染pdf时,PhantomJs将页眉边距设置为0,javascript,css,node.js,pdf,phantomjs,Javascript,Css,Node.js,Pdf,Phantomjs,我使用Node.js和模块phridge(版本1.0.3)来呈现带有PhantomJs的pdf 我想呈现一个在页眉和页脚中没有任何边距的pdf。目前,我只找到了一个黑客删除左,右边缘,通过一个负的左,右边缘的手段 可在此处找到打印带有页码的页眉和页脚的示例: //在内部创建新网页 var page=phantom.createPage(), outputFile=path.join(options.destDir,options.destFile); /*全局窗口:false*/ //page

我使用Node.js和模块phridge(版本1.0.3)来呈现带有PhantomJs的pdf

我想呈现一个在页眉和页脚中没有任何边距的pdf。目前,我只找到了一个黑客删除左,右边缘,通过一个负的左,右边缘的手段

可在此处找到打印带有页码的页眉和页脚的示例:

//在内部创建新网页
var page=phantom.createPage(),
outputFile=path.join(options.destDir,options.destFile);
/*全局窗口:false*/
//page.run(fn)在PhantomJS中运行fn
page.run(html、outputFile、options.header、options.footer、options.delay、,
函数(html、outputFile、页眉、页脚、延迟、解析/*、拒绝*/){
//这里我们在PhantomJS中,所以我们不能引用范围中的变量。
//“this”是由require返回的PhantomJS网页的实例(“网页”).create()
var page=这个;
page.content=html;
page.viewportSize={宽度:1190,高度:1684};//144dpi
页面大小={
格式:“A4”,
标题:{
//如何将边距设置为0px?边距:0px或边框:0px不起作用。
高度:'80px'
内容:phantom.callback(函数(pageNum,numPages){
返回header.contents.replace(//g,pageNum.replace(//g,numPages);
})
},
页脚:{
高度:'80px'
内容:phantom.callback(函数(pageNum,numPages){
返回footer.contents.replace(//g,pageNum.replace(//g,numPages);
})
},
};
//等待JavaScript运行完毕
setTimeout(函数(){
render(outputFile,{格式:'pdf',质量:'100'});
page.close();
page=null;
解析(输出文件);
},延误);
我通过使用负边距删除了左右页眉边距。为此,我使用了内联样式。 例如,当标题.内容为:

<div style="background-color: rgb(230, 231, 232);margin:-20px;height:80px;">
  <img style="text-align:center" src="file:///C:/image.png" alt="image">
</div>

在前面的一次尝试中,我删除了以下内部CSS样式表中包含的边距。不幸的是,似乎没有应用此样式。在其他地方,我了解到导致此行为的原因是在使用phantom.callback()时只应用了内联样式


@页面{
保证金:0;
}
* {
边际:0px;
填充:0px;
}
身体{
边际:0px;
}
如何删除页眉和页脚的顶部和底部边距


感谢阅读!

对于要呈现为pdf的html文件,请尝试以下CSS:

body {
    padding: 0;
    margin: 0;
}

另外,在默认情况下,
body
在顶部和底部有一些填充。

结果表明,页眉和页脚在不同的平台(Linux、Windows)上呈现不同,因为dpi不同

以下是关于它的讨论:

根据平台更改缩放因子,可消除白色间隙:

page.zoomFactor = (PLATFORM === 'linux'?  0.654545: 0.9)

这对我没有帮助。似乎页眉顶部边距甚至会随着页眉高度而增加。参见此处
body {
    padding: 0;
    margin: 0;
}
page.zoomFactor = (PLATFORM === 'linux'?  0.654545: 0.9)