打印 Google 个图表以占满整页

Print Google Chart to Take up Full Page

我正在开发一个应用程序,该应用程序使用 openResiazbleWindow() 打开一个显示 google 图表的 window。 window 的大小已设置,我不想更改它,因为大小看起来已经不错了。但是我遇到了一个问题,当它打印出来时,它只占了页面的四分之一。我试图让它全屏打印出来,但当我试图将 CSS 添加到 div 时,这没有帮助。我最接近的解决方案是向 onresize 事件添加一个函数,我在其中重新绘制图表。但是,浏览器似乎不将打印计为调整大小。我有什么想法可以做到这一点?下面的相关代码。

<style>
.bottn {
 overflow: hidden;
 margin-left: 10px; }
 @media print {
 @page {size: landscape;}
 .bottn{
  visibility: hidden;
}
rect
{
 width: 100% !important;
 height: 100% !important;
}
}
</style>
....
<script>google.load('visualization', '1.0', {'packages':['corechart']});
google.setOnLoadCallback(drawTempChart);
function drawTempChart() {
var DATA = google.visualization.arrayToDataTable([
  ......
], false);
 var data = DATA;
var options = {
 width:"100%",
 height:"100%",
 title: 'Harsh Acceleration Report',
 hAxis: { 
 title: 'Vehicles',
  },
 vAxis: {
   title: 'Harsh Acceleration Events' 
 }
 };
 var chart = new google.visualization.ColumnChart(document.getElementById('graph'));
 chart.draw(data, options);
}
 window.onresize = function(event) {
 drawTempChart();
 }
 </script>
 ....
 <body>
  <a class='bottn' href='javascript:window.print();'>Print</a><div id="graph" style="width: 100%; height: 100%";></div>
 </body>

有什么想法吗?

绘制图表两次。一旦你完成了,一旦在一个更大尺寸的隐藏 div 中。使用@media 打印指令隐藏视觉 div 并显示打印 div.

类似这样的伪造,我只在非打印 div 上设置 width/height 来向您展示:

<html>
<head>
    <style>
        .print {display:none;}
        @media print {
        .noprint {display:none;}
        .print {display:block;}
        }
    </style>
</head>
<body>
    <div class="noprint" style="width:480px;height:350px;background-color:yellow;">
        <p>I am a smaller div that does not print</p>
    </div>
    <div class="print" style="width:960px;height:700px;background-color:red;">
        <p>I am a large div that does print</p>
    </div>
</body>
</html>