Google 网络应用程序 HTML 分页符不起作用
Google Web app HTML page break not working
我有一个 Google Apps 脚本 "Web App"。我正在尝试为其生成的 2 页仪表板创建分页符。
我已经使用已发布的基本 Web 应用程序重现了该问题 here,这里是完整代码。
<body>
<div>page1</div>
<div class="break"></div>
<div>page2</div>
</body>
<style>
.break{
display:block;
page-break-before:always;
}
</style>
是不是因为网页应用显示在一个单独的iframe中,所以不能中断?
如果是这样-它可以拆分成多个 Iframe 吗??
或者我缺少的是简单的东西。
编辑:我现在也试过了
div.break{
display:block;
page-break-before:always;
}
和
@media print {
div.break{
display:block;
page-break-before:always;
}
}
这并没有改变任何东西。我已经在 Chrome 和 IE 中试过了,但都忽略了分页符。
编辑 2:
我认为这一定是 iframe 问题,因为如果我将我的代码复制到一个纯文本文件中并在 Chrome 中打开它,它会打印在 2 页上。因此,在 Apps 脚本中使用它必须忽略中断,大概是因为整个事情都在一个 iframe 中。嗯嗯....
谢谢
请使用@media print { div.break{} } 试试这个。
您说得对,您的 html 由 Google Apps 脚本显示在 iframe
中。当您尝试打印 Web 应用程序页面时,此 iframe
无法分页打印。
解决方案:select 网络应用程序中的一些文本,例如 page1,以获取 iframe
的上下文,然后点击 打印...,它将只打印 iframe
您 select 在以下位置输入的文本:
编辑:
您可以将 'Print...' 按钮添加到您的网络应用程序页面右侧,以使其更加用户友好:
<div>page1</div>
<div class="break"></div>
<div>page2</div>
<!-- added print button (with class "hide-on-print" to not display it when printed) -->
<button id="print" class="hide-on-print">Print...</button>
<script>
// open print dialog on button click
document.getElementById('print').addEventListener('click', function(){
window.print();
});
</script>
<style>
@media print {
.hide-on-print {
display: none
}
.break{
display:block;
page-break-before:always;
}
}
</style>
首先,必须感谢 Kos 指出,如果我在 iframe 中突出显示文本,它就会正确打印 - 我从未想过要尝试这样做
所以现在我添加了一个小函数,它只打印 iframe 而不是页面本身。
function printall() {
window.print();
window.frames[0].print();
}
并且我已经为该功能在仪表板上添加了一个按钮。我只会确保用户不会使用普通的打印菜单。
我有一个 Google Apps 脚本 "Web App"。我正在尝试为其生成的 2 页仪表板创建分页符。
我已经使用已发布的基本 Web 应用程序重现了该问题 here,这里是完整代码。
<body>
<div>page1</div>
<div class="break"></div>
<div>page2</div>
</body>
<style>
.break{
display:block;
page-break-before:always;
}
</style>
是不是因为网页应用显示在一个单独的iframe中,所以不能中断?
如果是这样-它可以拆分成多个 Iframe 吗??
或者我缺少的是简单的东西。
编辑:我现在也试过了
div.break{
display:block;
page-break-before:always;
}
和
@media print {
div.break{
display:block;
page-break-before:always;
}
}
这并没有改变任何东西。我已经在 Chrome 和 IE 中试过了,但都忽略了分页符。
编辑 2:
我认为这一定是 iframe 问题,因为如果我将我的代码复制到一个纯文本文件中并在 Chrome 中打开它,它会打印在 2 页上。因此,在 Apps 脚本中使用它必须忽略中断,大概是因为整个事情都在一个 iframe 中。嗯嗯....
谢谢
请使用@media print { div.break{} } 试试这个。
您说得对,您的 html 由 Google Apps 脚本显示在 iframe
中。当您尝试打印 Web 应用程序页面时,此 iframe
无法分页打印。
解决方案:select 网络应用程序中的一些文本,例如 page1,以获取 iframe
的上下文,然后点击 打印...,它将只打印 iframe
您 select 在以下位置输入的文本:
编辑:
您可以将 'Print...' 按钮添加到您的网络应用程序页面右侧,以使其更加用户友好:
<div>page1</div>
<div class="break"></div>
<div>page2</div>
<!-- added print button (with class "hide-on-print" to not display it when printed) -->
<button id="print" class="hide-on-print">Print...</button>
<script>
// open print dialog on button click
document.getElementById('print').addEventListener('click', function(){
window.print();
});
</script>
<style>
@media print {
.hide-on-print {
display: none
}
.break{
display:block;
page-break-before:always;
}
}
</style>
首先,必须感谢 Kos 指出,如果我在 iframe 中突出显示文本,它就会正确打印 - 我从未想过要尝试这样做
所以现在我添加了一个小函数,它只打印 iframe 而不是页面本身。
function printall() {
window.print();
window.frames[0].print();
}
并且我已经为该功能在仪表板上添加了一个按钮。我只会确保用户不会使用普通的打印菜单。