Google Apps脚本 - 在doGet()网络应用中格式化打印页面

时间:2015-08-28 19:58:26

标签: google-apps-script

我创建了一个使用HtmlService返回HtmlOutput对象的doGet()Web应用程序。这个页面有很多内容,所以我只是嘲笑this web app有三个带有假文本的长段落:

function doGet(e) {
  var output = HtmlService.createHtmlOutput('<!DOCTYPE html><html><head>' +
    '<style>' +
    '@media print { .mydiv { background-color: white; height: 100%; width: 100%; position: fixed; top: 0; left: 0; margin: 0; padding: 15px; font-size: 14px; line-height: 18px; }};' +
    '</style>' +
    '</head><body>' + 
    '<div id="mydiv"><p>Lorem ipsum dolor...luctus.</p>' +
    '<p>Lorem ipsum dolor...luctus.</p>' +
    '<p>Lorem ipsum dolor...luctus.</p></div>' +
    '</body></html>');
  return output;
}

从链接中可以看到,html按预期返回。问题是当我尝试从浏览器打印页面时,只打印第一页。我尝试过使用javascript和@media打印样式(在上面的示例中,我是从this SO question上得到的答案),并尝试在各种浏览器中打印...但只有第一页打印和滚动条位于打印页面上!这是打印预览:

enter image description here

有关如何将文本打印在多个页面上的任何想法应该如此?不确定它是Google Apps脚本还是我不熟悉CSS ......

2 个答案:

答案 0 :(得分:2)

这不是布局的问题。它是由您的内容注入&lt; iframe&gt;引起的。而不是简单的HTML文档。

转到生成的页面,然后右键单击并选择&#34;查看页面来源&#34;。您将看到该页面由&lt; script&gt;组成。包含实际文字的部分和&lt; body&gt;仅使用&lt; iframe&gt;被填满了。

打印页面会显示&lt; iframe&gt;在页面大小的100%处,然后在右侧添加滑块,因为&lt; iframe&gt;中有更多内容。比在页面上适合。

请描述您想要获得更好答案的整个过程。

答案 1 :(得分:0)

<button class="transfer-data">Transfer Printed Data</button>
<table class="my-data" style="width:100%">
  <tr>
    <th>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus rhoncus leo sagittis, euismod diam nec, ultrices lectus. Nunc aliquam nec augue sed placerat. Pellentesque urna velit, sodales eget enim eu, ultrices maximus urna. Etiam gravida auctor tellus, ut mattis eros fringilla eu. Etiam justo arcu, sollicitudin ac volutpat a, efficitur commodo nulla. Nulla euismod sagittis nibh, cursus consequat metus tincidunt vestibulum. Sed congue lectus id dui consequat ornare. Suspendisse tincidunt mattis velit sed tempor. Nulla eleifend a elit non rutrum. Fusce at elit et odio porttitor dictum. Quisque cursus odio ac eros sollicitudin, condimentum convallis ante blandit. Aliquam in tortor eu ligula congue elementum quis non augue. In vehicula felis ex, vitae congue metus placerat non. Phasellus ac urna sed ex egestas hendrerit at a dolor. Vestibulum odio tellus, pulvinar sit amet felis id, cursus iaculis nisl. Aliquam rutrum interdum eros ac volutpat.</th>
    <th>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus rhoncus leo sagittis, euismod diam nec, ultrices lectus. Nunc aliquam nec augue sed placerat. Pellentesque urna velit, sodales eget enim eu, ultrices maximus urna. Etiam gravida auctor tellus, ut mattis eros fringilla eu. Etiam justo arcu, sollicitudin ac volutpat a, efficitur commodo nulla. Nulla euismod sagittis nibh, cursus consequat metus tincidunt vestibulum. Sed congue lectus id dui consequat ornare. Suspendisse tincidunt mattis velit sed tempor. Nulla eleifend a elit non rutrum. Fusce at elit et odio porttitor dictum. Quisque cursus odio ac eros sollicitudin, condimentum convallis ante blandit. Aliquam in tortor eu ligula congue elementum quis non augue. In vehicula felis ex, vitae congue metus placerat non. Phasellus ac urna sed ex egestas hendrerit at a dolor. Vestibulum odio tellus, pulvinar sit amet felis id, cursus iaculis nisl. Aliquam rutrum interdum eros ac volutpat.</th> 
    <th>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus rhoncus leo sagittis, euismod diam nec, ultrices lectus. Nunc aliquam nec augue sed placerat. Pellentesque urna velit, sodales eget enim eu, ultrices maximus urna. Etiam gravida auctor tellus, ut mattis eros fringilla eu. Etiam justo arcu, sollicitudin ac volutpat a, efficitur commodo nulla. Nulla euismod sagittis nibh, cursus consequat metus tincidunt vestibulum. Sed congue lectus id dui consequat ornare. Suspendisse tincidunt mattis velit sed tempor. Nulla eleifend a elit non rutrum. Fusce at elit et odio porttitor dictum. Quisque cursus odio ac eros sollicitudin, condimentum convallis ante blandit. Aliquam in tortor eu ligula congue elementum quis non augue. In vehicula felis ex, vitae congue metus placerat non. Phasellus ac urna sed ex egestas hendrerit at a dolor. Vestibulum odio tellus, pulvinar sit amet felis id, cursus iaculis nisl. Aliquam rutrum interdum eros ac volutpat.</th>
  </tr>
  <tr>
    <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus rhoncus leo sagittis, euismod diam nec, ultrices lectus. Nunc aliquam nec augue sed placerat. Pellentesque urna velit, sodales eget enim eu, ultrices maximus urna. Etiam gravida auctor tellus, ut mattis eros fringilla eu. Etiam justo arcu, sollicitudin ac volutpat a, efficitur commodo nulla. Nulla euismod sagittis nibh, cursus consequat metus tincidunt vestibulum. Sed congue lectus id dui consequat ornare. Suspendisse tincidunt mattis velit sed tempor. Nulla eleifend a elit non rutrum. Fusce at elit et odio porttitor dictum. Quisque cursus odio ac eros sollicitudin, condimentum convallis ante blandit. Aliquam in tortor eu ligula congue elementum quis non augue. In vehicula felis ex, vitae congue metus placerat non. Phasellus ac urna sed ex egestas hendrerit at a dolor. Vestibulum odio tellus, pulvinar sit amet felis id, cursus iaculis nisl. Aliquam rutrum interdum eros ac volutpat.</td>
    <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus rhoncus leo sagittis, euismod diam nec, ultrices lectus. Nunc aliquam nec augue sed placerat. Pellentesque urna velit, sodales eget enim eu, ultrices maximus urna. Etiam gravida auctor tellus, ut mattis eros fringilla eu. Etiam justo arcu, sollicitudin ac volutpat a, efficitur commodo nulla. Nulla euismod sagittis nibh, cursus consequat metus tincidunt vestibulum. Sed congue lectus id dui consequat ornare. Suspendisse tincidunt mattis velit sed tempor. Nulla eleifend a elit non rutrum. Fusce at elit et odio porttitor dictum. Quisque cursus odio ac eros sollicitudin, condimentum convallis ante blandit. Aliquam in tortor eu ligula congue elementum quis non augue. In vehicula felis ex, vitae congue metus placerat non. Phasellus ac urna sed ex egestas hendrerit at a dolor. Vestibulum odio tellus, pulvinar sit amet felis id, cursus iaculis nisl. Aliquam rutrum interdum eros ac volutpat.</td> 
    <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus rhoncus leo sagittis, euismod diam nec, ultrices lectus. Nunc aliquam nec augue sed placerat. Pellentesque urna velit, sodales eget enim eu, ultrices maximus urna. Etiam gravida auctor tellus, ut mattis eros fringilla eu. Etiam justo arcu, sollicitudin ac volutpat a, efficitur commodo nulla. Nulla euismod sagittis nibh, cursus consequat metus tincidunt vestibulum. Sed congue lectus id dui consequat ornare. Suspendisse tincidunt mattis velit sed tempor. Nulla eleifend a elit non rutrum. Fusce at elit et odio porttitor dictum. Quisque cursus odio ac eros sollicitudin, condimentum convallis ante blandit. Aliquam in tortor eu ligula congue elementum quis non augue. In vehicula felis ex, vitae congue metus placerat non. Phasellus ac urna sed ex egestas hendrerit at a dolor. Vestibulum odio tellus, pulvinar sit amet felis id, cursus iaculis nisl. Aliquam rutrum interdum eros ac volutpat.</td>
  </tr>
  <tr>
    <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus rhoncus leo sagittis, euismod diam nec, ultrices lectus. Nunc aliquam nec augue sed placerat. Pellentesque urna velit, sodales eget enim eu, ultrices maximus urna. Etiam gravida auctor tellus, ut mattis eros fringilla eu. Etiam justo arcu, sollicitudin ac volutpat a, efficitur commodo nulla. Nulla euismod sagittis nibh, cursus consequat metus tincidunt vestibulum. Sed congue lectus id dui consequat ornare. Suspendisse tincidunt mattis velit sed tempor. Nulla eleifend a elit non rutrum. Fusce at elit et odio porttitor dictum. Quisque cursus odio ac eros sollicitudin, condimentum convallis ante blandit. Aliquam in tortor eu ligula congue elementum quis non augue. In vehicula felis ex, vitae congue metus placerat non. Phasellus ac urna sed ex egestas hendrerit at a dolor. Vestibulum odio tellus, pulvinar sit amet felis id, cursus iaculis nisl. Aliquam rutrum interdum eros ac volutpat.</td>
    <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus rhoncus leo sagittis, euismod diam nec, ultrices lectus. Nunc aliquam nec augue sed placerat. Pellentesque urna velit, sodales eget enim eu, ultrices maximus urna. Etiam gravida auctor tellus, ut mattis eros fringilla eu. Etiam justo arcu, sollicitudin ac volutpat a, efficitur commodo nulla. Nulla euismod sagittis nibh, cursus consequat metus tincidunt vestibulum. Sed congue lectus id dui consequat ornare. Suspendisse tincidunt mattis velit sed tempor. Nulla eleifend a elit non rutrum. Fusce at elit et odio porttitor dictum. Quisque cursus odio ac eros sollicitudin, condimentum convallis ante blandit. Aliquam in tortor eu ligula congue elementum quis non augue. In vehicula felis ex, vitae congue metus placerat non. Phasellus ac urna sed ex egestas hendrerit at a dolor. Vestibulum odio tellus, pulvinar sit amet felis id, cursus iaculis nisl. Aliquam rutrum interdum eros ac volutpat.</td> 
    <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus rhoncus leo sagittis, euismod diam nec, ultrices lectus. Nunc aliquam nec augue sed placerat. Pellentesque urna velit, sodales eget enim eu, ultrices maximus urna. Etiam gravida auctor tellus, ut mattis eros fringilla eu. Etiam justo arcu, sollicitudin ac volutpat a, efficitur commodo nulla. Nulla euismod sagittis nibh, cursus consequat metus tincidunt vestibulum. Sed congue lectus id dui consequat ornare. Suspendisse tincidunt mattis velit sed tempor. Nulla eleifend a elit non rutrum. Fusce at elit et odio porttitor dictum. Quisque cursus odio ac eros sollicitudin, condimentum convallis ante blandit. Aliquam in tortor eu ligula congue elementum quis non augue. In vehicula felis ex, vitae congue metus placerat non. Phasellus ac urna sed ex egestas hendrerit at a dolor. Vestibulum odio tellus, pulvinar sit amet felis id, cursus iaculis nisl. Aliquam rutrum interdum eros ac volutpat.</td>
  </tr>
  <tr>
    <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus rhoncus leo sagittis, euismod diam nec, ultrices lectus. Nunc aliquam nec augue sed placerat. Pellentesque urna velit, sodales eget enim eu, ultrices maximus urna. Etiam gravida auctor tellus, ut mattis eros fringilla eu. Etiam justo arcu, sollicitudin ac volutpat a, efficitur commodo nulla. Nulla euismod sagittis nibh, cursus consequat metus tincidunt vestibulum. Sed congue lectus id dui consequat ornare. Suspendisse tincidunt mattis velit sed tempor. Nulla eleifend a elit non rutrum. Fusce at elit et odio porttitor dictum. Quisque cursus odio ac eros sollicitudin, condimentum convallis ante blandit. Aliquam in tortor eu ligula congue elementum quis non augue. In vehicula felis ex, vitae congue metus placerat non. Phasellus ac urna sed ex egestas hendrerit at a dolor. Vestibulum odio tellus, pulvinar sit amet felis id, cursus iaculis nisl. Aliquam rutrum interdum eros ac volutpat.</td>
    <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus rhoncus leo sagittis, euismod diam nec, ultrices lectus. Nunc aliquam nec augue sed placerat. Pellentesque urna velit, sodales eget enim eu, ultrices maximus urna. Etiam gravida auctor tellus, ut mattis eros fringilla eu. Etiam justo arcu, sollicitudin ac volutpat a, efficitur commodo nulla. Nulla euismod sagittis nibh, cursus consequat metus tincidunt vestibulum. Sed congue lectus id dui consequat ornare. Suspendisse tincidunt mattis velit sed tempor. Nulla eleifend a elit non rutrum. Fusce at elit et odio porttitor dictum. Quisque cursus odio ac eros sollicitudin, condimentum convallis ante blandit. Aliquam in tortor eu ligula congue elementum quis non augue. In vehicula felis ex, vitae congue metus placerat non. Phasellus ac urna sed ex egestas hendrerit at a dolor. Vestibulum odio tellus, pulvinar sit amet felis id, cursus iaculis nisl. Aliquam rutrum interdum eros ac volutpat.</td> 
    <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus rhoncus leo sagittis, euismod diam nec, ultrices lectus. Nunc aliquam nec augue sed placerat. Pellentesque urna velit, sodales eget enim eu, ultrices maximus urna. Etiam gravida auctor tellus, ut mattis eros fringilla eu. Etiam justo arcu, sollicitudin ac volutpat a, efficitur commodo nulla. Nulla euismod sagittis nibh, cursus consequat metus tincidunt vestibulum. Sed congue lectus id dui consequat ornare. Suspendisse tincidunt mattis velit sed tempor. Nulla eleifend a elit non rutrum. Fusce at elit et odio porttitor dictum. Quisque cursus odio ac eros sollicitudin, condimentum convallis ante blandit. Aliquam in tortor eu ligula congue elementum quis non augue. In vehicula felis ex, vitae congue metus placerat non. Phasellus ac urna sed ex egestas hendrerit at a dolor. Vestibulum odio tellus, pulvinar sit amet felis id, cursus iaculis nisl. Aliquam rutrum interdum eros ac volutpat.</td>
  </tr>
  <tr>
    <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus rhoncus leo sagittis, euismod diam nec, ultrices lectus. Nunc aliquam nec augue sed placerat. Pellentesque urna velit, sodales eget enim eu, ultrices maximus urna. Etiam gravida auctor tellus, ut mattis eros fringilla eu. Etiam justo arcu, sollicitudin ac volutpat a, efficitur commodo nulla. Nulla euismod sagittis nibh, cursus consequat metus tincidunt vestibulum. Sed congue lectus id dui consequat ornare. Suspendisse tincidunt mattis velit sed tempor. Nulla eleifend a elit non rutrum. Fusce at elit et odio porttitor dictum. Quisque cursus odio ac eros sollicitudin, condimentum convallis ante blandit. Aliquam in tortor eu ligula congue elementum quis non augue. In vehicula felis ex, vitae congue metus placerat non. Phasellus ac urna sed ex egestas hendrerit at a dolor. Vestibulum odio tellus, pulvinar sit amet felis id, cursus iaculis nisl. Aliquam rutrum interdum eros ac volutpat.</td>
    <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus rhoncus leo sagittis, euismod diam nec, ultrices lectus. Nunc aliquam nec augue sed placerat. Pellentesque urna velit, sodales eget enim eu, ultrices maximus urna. Etiam gravida auctor tellus, ut mattis eros fringilla eu. Etiam justo arcu, sollicitudin ac volutpat a, efficitur commodo nulla. Nulla euismod sagittis nibh, cursus consequat metus tincidunt vestibulum. Sed congue lectus id dui consequat ornare. Suspendisse tincidunt mattis velit sed tempor. Nulla eleifend a elit non rutrum. Fusce at elit et odio porttitor dictum. Quisque cursus odio ac eros sollicitudin, condimentum convallis ante blandit. Aliquam in tortor eu ligula congue elementum quis non augue. In vehicula felis ex, vitae congue metus placerat non. Phasellus ac urna sed ex egestas hendrerit at a dolor. Vestibulum odio tellus, pulvinar sit amet felis id, cursus iaculis nisl. Aliquam rutrum interdum eros ac volutpat.</td> 
    <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus rhoncus leo sagittis, euismod diam nec, ultrices lectus. Nunc aliquam nec augue sed placerat. Pellentesque urna velit, sodales eget enim eu, ultrices maximus urna. Etiam gravida auctor tellus, ut mattis eros fringilla eu. Etiam justo arcu, sollicitudin ac volutpat a, efficitur commodo nulla. Nulla euismod sagittis nibh, cursus consequat metus tincidunt vestibulum. Sed congue lectus id dui consequat ornare. Suspendisse tincidunt mattis velit sed tempor. Nulla eleifend a elit non rutrum. Fusce at elit et odio porttitor dictum. Quisque cursus odio ac eros sollicitudin, condimentum convallis ante blandit. Aliquam in tortor eu ligula congue elementum quis non augue. In vehicula felis ex, vitae congue metus placerat non. Phasellus ac urna sed ex egestas hendrerit at a dolor. Vestibulum odio tellus, pulvinar sit amet felis id, cursus iaculis nisl. Aliquam rutrum interdum eros ac volutpat.</td>
  </tr>
  <tr>
    <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus rhoncus leo sagittis, euismod diam nec, ultrices lectus. Nunc aliquam nec augue sed placerat. Pellentesque urna velit, sodales eget enim eu, ultrices maximus urna. Etiam gravida auctor tellus, ut mattis eros fringilla eu. Etiam justo arcu, sollicitudin ac volutpat a, efficitur commodo nulla. Nulla euismod sagittis nibh, cursus consequat metus tincidunt vestibulum. Sed congue lectus id dui consequat ornare. Suspendisse tincidunt mattis velit sed tempor. Nulla eleifend a elit non rutrum. Fusce at elit et odio porttitor dictum. Quisque cursus odio ac eros sollicitudin, condimentum convallis ante blandit. Aliquam in tortor eu ligula congue elementum quis non augue. In vehicula felis ex, vitae congue metus placerat non. Phasellus ac urna sed ex egestas hendrerit at a dolor. Vestibulum odio tellus, pulvinar sit amet felis id, cursus iaculis nisl. Aliquam rutrum interdum eros ac volutpat.</td>
    <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus rhoncus leo sagittis, euismod diam nec, ultrices lectus. Nunc aliquam nec augue sed placerat. Pellentesque urna velit, sodales eget enim eu, ultrices maximus urna. Etiam gravida auctor tellus, ut mattis eros fringilla eu. Etiam justo arcu, sollicitudin ac volutpat a, efficitur commodo nulla. Nulla euismod sagittis nibh, cursus consequat metus tincidunt vestibulum. Sed congue lectus id dui consequat ornare. Suspendisse tincidunt mattis velit sed tempor. Nulla eleifend a elit non rutrum. Fusce at elit et odio porttitor dictum. Quisque cursus odio ac eros sollicitudin, condimentum convallis ante blandit. Aliquam in tortor eu ligula congue elementum quis non augue. In vehicula felis ex, vitae congue metus placerat non. Phasellus ac urna sed ex egestas hendrerit at a dolor. Vestibulum odio tellus, pulvinar sit amet felis id, cursus iaculis nisl. Aliquam rutrum interdum eros ac volutpat.</td> 
    <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus rhoncus leo sagittis, euismod diam nec, ultrices lectus. Nunc aliquam nec augue sed placerat. Pellentesque urna velit, sodales eget enim eu, ultrices maximus urna. Etiam gravida auctor tellus, ut mattis eros fringilla eu. Etiam justo arcu, sollicitudin ac volutpat a, efficitur commodo nulla. Nulla euismod sagittis nibh, cursus consequat metus tincidunt vestibulum. Sed congue lectus id dui consequat ornare. Suspendisse tincidunt mattis velit sed tempor. Nulla eleifend a elit non rutrum. Fusce at elit et odio porttitor dictum. Quisque cursus odio ac eros sollicitudin, condimentum convallis ante blandit. Aliquam in tortor eu ligula congue elementum quis non augue. In vehicula felis ex, vitae congue metus placerat non. Phasellus ac urna sed ex egestas hendrerit at a dolor. Vestibulum odio tellus, pulvinar sit amet felis id, cursus iaculis nisl. Aliquam rutrum interdum eros ac volutpat.</td>
  </tr>

</table>

<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>

<script>
    $(function() 
    {
        $(".transfer-data").on( "click", function()
        {
            var printedData = $(".my-data").html();
            var w = window.open();
            $(w.document.body).html(printedData);
        });
    });
</script>

上面是我打印的html

function doGet()
{
    return HtmlService.createHtmlOutputFromFile('print.html').setHeight(1000);
}

创意是创建一个按钮,打开一个新标签,将打印的html(您的数据)插入其中,然后您可以打印它,因为它不在任何IFrame内