我正在尝试使用PhantomJS截屏HTML文件。



当我使用phantomjs my.js运行此捕获时,PNG如图中所示具有图块的边距。

有什么办法可以删除所有边距,以便只看到图形?

var page = require('webpage').create();
page.open('/my/path/my.html', function() {

    page.viewportSize = { width: 700, height: 550 };
    page.clipRect = { top: 0, left: 0, width: 700, height: 550 };
    page.paperSize = { width: 700, height: 550, orientation: 'portrait', margin: '0px' }

    page.render('my.png');

    phantom.exit();
});


这是我的带有Google图表的html文件。

<html>
  <head>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["corechart"]});
      google.setOnLoadCallback(drawChart);
      function drawChart() {
        var data = google.visualization.arrayToDataTable([
          ['Task', 'Hours per Day'],
          ['Work',     11],
          ['Eat',      2],
          ['Commute',  2],
          ['Watch TV', 2],
          ['Sleep',    7]
        ]);

        var options = {
          title: 'My Daily Activities',
          pieHole: 0.4,
        };

        var chart = new google.visualization.PieChart(document.getElementById('donutchart'));
        chart.draw(data, options);
      }
    </script>
  </head>
  <body>
    <div id="donutchart" style="width: 900px; height: 500px;"></div>
  </body>
</html>

最佳答案

当前,您的甜甜圈图具有白色的background-color,而页面的body元素具有透明的背景:

body {
    background-color: transparent;
    margin: 8px;
}


来源:您的网页。


注意与您的body元素关联的边距。它对应于您在屏幕快照中看到的顶部和左侧“图块的空白”。
在网络上,图块的空白代表透明性。要解决此问题,应将background-color设置为white




将以下内容添加到您的CSS中:

body {
    background-color: white;
}


或者,在</head>上方添加以下行:

<style>body { background-color: white; }</style>

09-25 17:54