从Angular打印HTML时文档在页面中途向下打印

时间:2019-04-26 18:04:53

标签: javascript html angular

使用document.write()我正在打印对象的内容,该内容是为打印机格式化的。文本只会从页面的中间开始打印。

我可以直接打印屏幕而不会出现此问题,因此使我认为我格式化不正确,但是我以前从未做过,也不知道出什么问题了。

这是我的打印功能。

    let popupWin: any;
    popupWin = window.open('', '_blank', 'top=0,left=0,height=100%,width=auto');
    popupWin.document.open();
    popupWin.document.write(`
    <html>
      <head>
        <title>${this.editPla.name}</title>
        <style></style>
      </head>
      <body onload="window.print();window.close()">
        <table>
          ${values[0]}
          ${values[1]}
        </table>
      </body>
    </html>
    `
    );
    popupWin.document.close();
  }

以下是values变量中包含的字符串的简短示例(实际字符串很长):

      <tr style="width:100%;">
        <td style="height:5px;width:75px; border-bottom:1px dotted #777;font-size:12px;padding-top:10px;">Foo</td>
        <td style="height:5px;border-bottom:1px dotted #777;font-size:12px;padding-top:10px;">Bar</td><br>
        <td style="height:5px;width:75px; border-bottom:1px dotted #777;font-size:12px;padding-top:10px;">Foo</td>
        <td style="height:5px;border-bottom:1px dotted #777;font-size:12px;padding-top:10px;">Bar</td><br>
        <td style="height:5px;width:75px; border-bottom:1px dotted #777;font-size:12px;padding-top:10px;">Foo</td>
        <td style="height:5px;border-bottom:1px dotted #777;font-size:12px;padding-top:10px;">Bar</td><br>
        <td style="height:5px;width:75px; border-bottom:1px dotted #777;font-size:12px;padding-top:10px;">Foo</td>
        <td style="height:5px;border-bottom:1px dotted #777;font-size:12px;padding-top:10px;">Bar</td><br>
      </tr>

我的结果如下所示: https://drive.google.com/file/d/1szQ-a3-KEVjYFhQfHDEJPTXKnG9-5m8S/view?usp=sharing

2 个答案:

答案 0 :(得分:0)

您发布的代码看起来不错。您不会显示它的名称。

调用此命令时,它是否在具有垂直对齐方式修改的DIV中?

看起来您的窗口正在以垂直对齐方式居中加载,而不是顶部加载。 如果要传递“ this”,则可以传递(继承)修改

尝试在body标签中添加样式以使其与顶部对齐

答案 1 :(得分:0)

编辑:这个问题的答案是我愚蠢地在每一行的末尾插入了一个<br>标签。删除后,文档将按预期打印。