一个 HTML 页面上的多个打印按钮,只打印某些部分?

Posted

技术标签:

【中文标题】一个 HTML 页面上的多个打印按钮,只打印某些部分?【英文标题】:Multiple Print buttons on one HTML page, only printing certain sections? 【发布时间】:2021-07-20 21:55:42 【问题描述】:

我正在创建一个包含多个磁贴的页面,每个磁贴都有自己的打印按钮。单击打印按钮后,我只想显示要打印的磁贴中的内容。

I'm using @media print display:none any contents that are not in the tiles (which works), but the issue I'm having is each tile displays when a print button is selected.

是否可以使用多个@media 打印或隔离它们?如果不是,如何在@media print 中指示仅包含一个图块,基于哪个图块被单击打印?下面最终打印所有图块。

例子:

    @media print
    
    .noprint display:none;
    

   <div class="noprint">
      OTHER STUFF
   </div>

   <div class="printcard1" id=BM">
      <a href="javascript:window.print()">PrintMe!</a>
      -CONTENT-
   </div>

   <div class="printcard2" id=KM">
      <a href="javascript:window.print()">PrintMe!</a>
      -CONTENT-
   </div>

等等等等

【问题讨论】:

【参考方案1】:

我终于能够在同一页面上找到多个打印按钮的解决方案。想要分享以防其他人也在搜索中。

<script>
    function printDiv1() 
        var divContents = document.getElementById("Tile1").innerhtml;
        var a = window.open('', '', 'height=500, width=500');
        a.document.write('<html>');
        a.document.write('<body>');
        a.document.write(divContents);
        a.document.write('</body></html>');
        a.document.close();
        a.print();
    

    function printDiv2() 
        var divContents = document.getElementById("Tile2").innerHTML;
        var a = window.open('', '', 'height=500, width=500');
        a.document.write('<html>');
        a.document.write('<body>');
        a.document.write(divContents);
        a.document.write('</body></html>');
        a.document.close();
        a.print();
      

</script>



<div class="PrintRec1" id="Tile1">
  CONTENTS
    <input type="button" value="Print this Recipe" onclick="printDiv1()">
</div>

<div class="PrintRec2" id="Tile2">
  CONTENTS
    <input type="button" value="Print this Recipe" onclick="printDiv2()">
</div>

【讨论】:

以上是关于一个 HTML 页面上的多个打印按钮,只打印某些部分?的主要内容,如果未能解决你的问题,请参考以下文章

拆分 HTML 页面,以便打印机将其拆分为单独的页面

使用 django 打印一个 html 页面

如何排除某些元素显示在打印机的输出上? [复制]

THEAD 与打印页眉上的页面内容重叠

如何在HTML5中获取并打印表的多个列? (django,sqlite,html5)

如何使用 TS 在 Angular 4 中打印页面