【问题标题】:How to force printer setup (paper size) in javascript while only printing a div?如何在仅打印 div 时在 javascript 中强制打印机设置(纸张大小)?
【发布时间】:2019-01-31 05:45:28
【问题描述】:

我的项目的输出带有循环的表。我需要将每张表格打印在 4x6 英寸的纸上,但 js 打印设置总是以字母大小。单击打印预览按钮时,我需要打印预览为 4x6in 格式。提前致谢。

我尝试过 CSS,但 javascript 没有适应 CSS 设置。

function printDiv(divID) {

    //Get the HTML of div
    var divElements = document.getElementById(divID).innerHTML;
    //Get the HTML of whole page
    var oldPage = document.body.innerHTML;

    //Reset the page's HTML with div's HTML only
    document.body.innerHTML =
        "<html><head><title></title></head><body>" +
        divElements + "</body>";

    //document.getElementById("pagebreak").style.pageBreakBefore = "always";

    //Print Page
    window.print();

    //Restore orignal HTML
    document.body.innerHTML = oldPage;

}

【问题讨论】:

  • 这与 C# 有什么关系?提示:它没有。
  • 也许这个page about Printing 会帮助你?看来你应该为媒体类型print 提供一个样式表来控制布局。

标签: javascript asp.net printing


【解决方案1】:

添加此样式表

<style>
@page 
{
    size:  auto;   /* auto is the initial value */
    margin: 0mm;  /* this affects the margin in the printer settings */
}

html
{
    background-color: #FFFFFF; 
    margin: 0px;  /* this affects the margin on the html before sending to printer */
}

body
{
    /*border: solid 1px black ;*/
    margin: 5mm 5mm 5mm 5mm; /* margin you want for the content */
}
</style>

【讨论】:

  • “@page”表示它在当前上下文中不存在。我正在使用 asp.net 顺便说一句
  • 它与asp没有任何关系......只需在html页面中包含样式表,它应该可以正常工作。
  • @LiyaWazowski 如果您使用 Razor 并想使用 @Page 内联,请使用 @@Page
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-19
  • 2013-09-18
  • 2012-08-31
  • 2014-03-16
  • 2021-01-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多