Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Java脚本使用pagebreak在循环中打印字母_Javascript_Jquery_Asp.net Mvc - Fatal编程技术网

Javascript 使用Java脚本使用pagebreak在循环中打印字母

Javascript 使用Java脚本使用pagebreak在循环中打印字母,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,我的项目要求是打印一封在剑道编辑器中创建并以html格式提供的信。同一封信可能会为不同的人打印,因为他们的名字会动态出现,就像MS Word中的邮件合并字段一样。 我使用Java脚本在按钮点击上打印 我循环的信件内容如下 @foreach (var item in Model) { <div style="margin: 100px 10px 10px 50px;" class="print"> @Html.Raw(item) </div>

我的项目要求是打印一封在剑道编辑器中创建并以html格式提供的信。同一封信可能会为不同的人打印,因为他们的名字会动态出现,就像MS Word中的邮件合并字段一样。 我使用Java脚本在按钮点击上打印

我循环的信件内容如下

@foreach (var item in Model)
{
    <div style="margin: 100px 10px 10px 50px;" class="print">
        @Html.Raw(item)
    </div>

}
这封信应该印在信头上,所以我把页边空白也放在上面和下面。 当信件内容出现在单页中时,但当信件内容移动到下一页时,这种方法很有效。它不是在下一页设置上页边距


有什么建议吗?

这有点棘手。您必须计算溢出到下一页的字符数,然后关闭div并为第二页打开一个新的div,以便再次应用页边距。但是渲染的字体、间距和缩放在每台电脑和不同的浏览器上都会有所不同。您是否尝试过将输出转换为PDF格式?通过这种方式,您可以使用具有页面分隔的格式,并且可以更详细地控制页边距和打印方式。是的,此处的字符量可能不起作用,因为编辑器可以选择更改字体大小和格式,还可以插入图像。其他转换为pdf的选项尚未尝试。那可能是我最后的选择了。。
.print:last-child {
 page-break-after: auto;
}