国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

利用jqprint插件打印頁面內(nèi)容的實(shí)現(xiàn)方法

2019-11-19 14:33:42
字體:
供稿:網(wǎng)友

業(yè)務(wù)場景

客戶需要在頁面有一個打印按鈕,點(diǎn)擊之后可以打印Echarts圖表的內(nèi)容以及文字提示信息,經(jīng)谷歌搜索發(fā)現(xiàn),實(shí)現(xiàn)方法大概有三種之多,其他兩種不太熟悉,而采用的這種打印方式是一個在jQuery的基本上開發(fā)的一個print插件,因此可以使用jQuery的方式查找元素,因此決定采用這種方式。

先看一下實(shí)現(xiàn)的效果圖,如下:


實(shí)現(xiàn)效果圖

引入js文件

<script type="text/javascript" src="__JS__/jquery-migrate-1.2.1.min.js"></script><script type="text/javascript" src="__JS__/jqprint-0.3.js"></script>

注意:這里是先引入的jQuery文件,如果沒有引入第一個js文件的話,會出現(xiàn)兼容性問題,導(dǎo)致使用jqprint打印時報錯。

html頁面

這里面的html標(biāo)簽很多的

<div class="wrap-content container" id="container"> <table border="0" cellpadding="0" cellspacing="0" class="store-joinin baseinfo">  <thead>   <tr>    <th colspan="40">用戶信息</th>   </tr>  </thead>  <tbody>   <tr style="background: rgb(255, 255, 255);">    <th>姓名:</th>    <td colspan="40">18030632605</td>   </tr>   <tr style="background: rgb(255, 255, 255);">    <th>性別:</th>    <td colspan="40">男</td>   </tr>   <tr style="background: rgb(255, 255, 255);">    <th>年齡:</th>    <td colspan="40">41</td>   </tr>   <tr style="background: rgb(255, 255, 255);">    <th>身份證:</th>    <td colspan="40">52272419770101059X</td>   </tr>   <tr style="background: rgb(255, 255, 255);">    <th>所屬機(jī)構(gòu):</th>    <td colspan="40">上海市政法委</td>   </tr>  </tbody>  </table> ...... <button class="btn btn-danger printBtn1" onclick="btnPrintClick()" type="button">打 印</button>

當(dāng)然下面還有很多的html標(biāo)簽,在這里就不展示了。

打印按鈕點(diǎn)擊之后執(zhí)行的函數(shù)

function btnPrintClick(){ var imgBox = $('#img_box'); var chartBox = $('#main'); if (imgBox.length <= 0) {  chartBox.after('<div id="img_box"></div>');  imgBox = $('#img_box'); } // 將echart生成圖片并放入img-box,并顯示圖片img-box imgBox.html('< img src="' + myChart.getDataURL() + '"/>').css('display','block'); // 隱藏echart圖chart-box chartBox.css('display','none'); // 調(diào)整img大小 var img = imgBox.find('img'); var imgWidth = img.width(); var showWidth = 1000; // 顯示寬度,即圖片縮小到的寬度 if (imgWidth > showWidth) { // 只有當(dāng)圖片大了才縮小  var imgNewHeight = img.height() / (imgWidth / showWidth);  img.css({'width': showWidth + 'px', 'height': imgNewHeight + 'px'}); } var imgBox2 = $('#img_box2'); var chartBox2 = $('#main2'); if (imgBox2.length <= 0) {  chartBox2.after('<div id="img_box2"></div>');  imgBox2 = $('#img_box2'); } // 將echart生成圖片并放入img-box,并顯示圖片img-box imgBox2.html('< img src="' + myChart2.getDataURL() + '"/>').css('display','block'); // 隱藏echart圖chart-box  chartBox2.css('display','none'); // 調(diào)整img大小 var img2 = imgBox2.find('img'); var img2Width = img2.width(); var show2Width = 1000; // 顯示寬度,即圖片縮小到的寬度 if (img2Width > show2Width) { // 只有當(dāng)圖片大了才縮小  var img2NewHeight = img2.height() / (img2Width / show2Width);  img2.css({'width': show2Width + 'px', 'height': img2NewHeight + 'px'}); } // 打印 $("#TestQuestions").jqprint(); // 執(zhí)行打印后再切換回來 // 顯示echart圖chart-box chartBox.css('display','block'); chartBox2.css('display','block'); // 隱藏圖片img-box imgBox.css('display','none'); imgBox2.css('display','none');}

注意事項(xiàng):

這里使用了圖片的縮放比例的方式。比如Echarts圖表要顯示的內(nèi)容特別多的話,一般在html頁面中采用的是在X軸上使用滾動條的方式,但是打印時可以將Echarts圖表先轉(zhuǎn)換成圖片,并等比例進(jìn)行縮放,打印完畢之后再還原回來即可。

任何不需要打印的標(biāo)簽都可以先隱藏。對于不需要出現(xiàn)在打印頁面的標(biāo)簽內(nèi)容,我們在打印之前使用jQuery查找到對應(yīng)的元素,將該元素隱藏起來,打印結(jié)束之后,再將隱藏的元素顯示出來即可。

屬性

  • debug: false, //如果是true則可以顯示iframe查看效果(iframe默認(rèn)高和寬都很小,可以再源碼中調(diào)大),默認(rèn)是false
  • importCSS: true, //true表示引進(jìn)原來的頁面的css,默認(rèn)是true。(如果是true,先會找$("link[media=print]"),若沒有會去找$("link")中的css文件)
  • printContainer: true, //表示如果原來選擇的對象必須被納入打?。ㄗ⒁猓涸O(shè)置為false可能會打破你的CSS規(guī)則)。
  • operaSupport: false //表示如果插件也必須支持歌opera瀏覽器,在這種情況下,它提供了建立一個臨時的打印選項(xiàng)卡。默認(rèn)是true

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對武林網(wǎng)的支持。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 云南省| 西昌市| 叙永县| 惠水县| 阿荣旗| 綦江县| 商南县| 湛江市| 涡阳县| 昌吉市| 红原县| 远安县| 北流市| 确山县| 长岭县| 固安县| 遵义市| 石城县| 健康| 香格里拉县| 阳山县| 图木舒克市| 商水县| 巴塘县| 大理市| 兴和县| 长阳| 安泽县| 大港区| 民勤县| 昭平县| 平江县| 华蓥市| 田阳县| 肃宁县| 海伦市| 麟游县| 句容市| 松江区| 新泰市| 屏东市|