PhantomJS - paperSize 属性



此属性指定网页的尺寸,需要将其用于将网页转换为pdf格式。paperSize属性包含对象所需的尺寸。如果未定义paperSize,则将采用网页的尺寸。支持的尺寸单位为“mm”、“cm”、“in”和“px”。默认为“px”。

参数

以下是paperSize属性的参数

  • 页边距 − 可以作为一个对象给出,其值为“top”、“left”、“bottom”、“right”。默认为0。例如 – margin: {top: '100px',left: '20px',right: '20px',bottom: '10px'}

  • 格式 − 支持的格式为“A3”、“A4”、“A5”、“Legal”、“Letter”、“Tabloid”。

  • 方向 − “Portrait”(纵向)和“Landscape”(横向)。默认为“Portrait”(纵向)。

  • 页眉和页脚 − 页眉和页脚可以以对象的格式提供,包含高度和内容属性。

语法

其语法如下:

header: { 
   height: "1cm", 
   contents: phantom.callback(function(pageNumber, nPages) { 
      return "<h1>Header <b>" + pageNumber + " / " + nPages + "</b></h1>"; 
   }) 
} 
footer: { 
   height: "1cm", 
   contents: phantom.callback(function(pageNumber, nPages) { 
      return "<h1>Footer <b>" + pageNumber + " / " + nPages + "</b></h1>"; 
   }) 
} 

paperSize的语法如下:

wpage.paperSize = { 
   width: '600px', 
   height: '1500px', 
   
   margin: {
      'top':'50px',  
      'left':'50px', 
      'rigth':'50px' 
   }, 
   orientation:'portrait', 
   
   header: { 
      height: "1cm", 
      contents: phantom.callback(function(pageNumber, nPages) { 
         return "<h5>Header <b>" + pageNumber + " / " + nPages + "</b></h5>"; 
      }) 
   }, 
   footer: { 
      height: "1cm", 
      contents: phantom.callback(function(pageNumber, nPages) { 
         return "<h5>Footer <b>" + pageNumber + " / " + nPages + "</b></h5>"; 
      }) 
   } 
}

示例

让我们来看一个例子来理解paperSize属性的使用。

var wpage = require('webpage').create(); 
var url = "https:///tasks/a.html"; 
var output = "test.pdf";

wpage.paperSize = { 
   width: '600px', 
   height: '1500px', 
   
   margin: {
      'top':'50px', 
      'left':'50px', 
      'rigth':'50px' 
   }, 
   orientation:'portrait', 
   
   header: { 
      height: "1cm", 
      contents: phantom.callback(function(pageNumber, nPages) { 
         return "<h5>Header <b>" + pageNumber + " / " + nPages + "</b></h5>"; 
      }) 
   }, 
   footer: { 
      height: "1cm",  
      contents: phantom.callback(function(pageNumber, nPages) { 
         return "<h5>Footer <b>" + pageNumber + " / " + nPages + "</b></h5>"; 
      }) 
   } 
}  
wpage.open(url, function (status) { 
   if (status !== 'success') { 
      console.log('Page is not opening'); 
      phantom.exit(); 
   } else { 
      wpage.render(output); 
      phantom.exit(); 
   } 
}); 

上述程序生成以下输出

test.pdf

在上面的例子中,我们打开一个URL并为其提供papersize选项。wpage.render(output) 将给定的URL转换为pdf格式。pdf文件将存储在指定的output中,在上面的例子中我们将其指定为var output = "test.pdf"。

我们可以定义想要存储文件的路径。它将提供使用页眉和页脚的papersize尺寸的pdf格式。您可以执行上述代码并查看pdf文件的渲染方式。

phantomjs_webpage_module_properties.htm
广告
© . All rights reserved.