1

我目前有一个表单预览,它看起来正是我们希望它如何查找正在查看的列表项,但问题是当我在 FOrm Display 中添加我的打印按钮作为 CEWP 时,它执行与使用 Control P 和打印完全相同的功能整个页面。见代码。

          <div style="text-align: center"><input onclick="window.print();return false;" type="button" value=" Print this page "/>&#160;</div>"

我想添加到它只打印表单而不是窗口中当前视图之外的其他内容,实际上填充 8.5 x 11。

有任何想法吗?

4

2 回答 2

0

受此InfoPath 打印按钮的启发,一种解决方案是获取 CEWP 的内容并创建一个仅包含这些内容的新窗口。

var patt = /**your CEWP ID here***/g;
var alldivs = document.getElementsByTagName('div');
var printpageHTML = '';
for(var i=0; i<alldivs.length; i++){
  if(patt.test(alldivs[i].id)){
    printpageHTML = '<HTML><HEAD>\n' +
      document.getElementsByTagName('HEAD')[0].innerHTML +
      '</HEAD>\n<BODY>\n' + 
      alldivs[i].innerHTML.replace('inline-block','block') + 
      '\n</BODY></HTML>';
    break;
  }
}
var printWindow = window.open('','printWindow');
printWindow.document.open();
printWindow.document.write(printpageHTML);
printWindow.document.close();
printWindow.print();
printWindow.close();

修正:移除 HTML 字符的转义。

于 2013-10-16T16:16:48.270 回答
0

简单的打印功能:

<input id="printpagebutton" type="button" value="Print this page" onclick="printpage()"/>

<script type="text/javascript">
function printpage() {
    //Get the print button and put it into a variable
    var printButton = document.getElementById("printpagebutton");
    //Set the print button visibility to 'hidden' 
    printButton.style.visibility = 'hidden';
    //Print the page content
    window.print()
    //Set the print button to 'visible' again 
    //[Delete this line if you want it to stay hidden after printing]
    printButton.style.visibility = 'visible';
  }
 </script>
于 2016-03-30T11:55:35.863 回答