網頁打印很簡單!用web打印插件lodop輕松實現文件打印

最近,給客戶發一個事件提醒軟件,其中客戶要求實現打印功能,因為是用asp.net mvc 開發首先考慮到用水晶報表來實現(crystalReport),以前開發c# winform程序,感覺水晶報表還是蠻好的,但自從使用asp.net mvc 開發,感覺不是很友好,無意中看到有一個支持web(網頁打印)的打印插件lodop,打開官網,發現該軟件比較正規,網上評價也是比較好,抱著試試看的態度,去官方網站:Lodop和C-Lodop官網主站,下載并安裝。根據官方文檔,并結合自己的經驗,特分享如下:

網頁效果如圖:

實現的打印效果圖示如下:

很是干凈和整潔。非常漂亮!

登錄官網(Lodop和C-Lodop官網主站),下載相關安裝文件:

安裝包如下,根據圖示安裝:

本人在c# asp.net mvc 下測試,讀者可以根據自己熟悉的語言對號入座。分享代碼如下:

1.當然首先在vs2022中的工程項目界面要引入,LodopFuncs.js

2.部分代碼如下:?

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title></title><script language="javascript" src="LodopFuncs.js"></script>
</head>
<body><form id="form1"><table border="1" width="300" id="tb01" bgcolor="#CCFFCC" style="border: solid 1px black; border-collapse: collapse"><tr><td width="133" id="mtb001"><font face="黑體" color="#FF0000" size="3"><u>&nbsp;《表單一》&nbsp;</u></font></td></tr></table><table border="1" width="300" height="106" cellspacing="0" bgcolor="#CCFFFF" style="border-collapse: collapse; table-layout: fixed; border: solid 1px black;"><tr><td width="66" height="16" style="border: solid 1px black"><font color="#0000FF">A</font><font color="#0000FF">等</font></td><td width="51" height="16" style="border: solid 1px black"><font color="#0000FF">B</font><font color="#0000FF">等</font></td><td width="51" height="16" style="border: solid 1px black"><font color="#0000FF">C</font><font color="#0000FF">等</font></td></tr><tr><td width="66" height="16" style="border: solid 1px black">A<sub>01</sub></td><td width="80" height="12" style="border: solid 1px black">中-001</td><td width="51" height="12" style="border: solid 1px black">C1<sup>x</sup></td></tr><tr><td width="66" height="16" style="border: solid 1px black">A<sub>02</sub>Φ</td><td width="80" height="16" style="border: solid 1px black">日-スの</td><td width="51" height="16" style="border: solid 1px black"><font face='Vernada'>7&#13221</font></td></tr><tr><td width="66" height="16" style="border: solid 1px black; overflow: hidden">A<sub>03</sub><nobr>over隱藏后面的:1234567890</nobr></td><td width="80" height="16" style="border: solid 1px black; overflow: hidden">韓-??</td><td width="51" height="16">C3<sup>x</sup></td></tr></table></form>若只打印《表單一》,看一下<a href="javascript:prn1_preview()">打印預覽</a>,可<a href="javascript:prn1_print()">直接打印</a>也可 <script language="javascript" type="text/javascript">   var LODOP; //聲明為全局變量 function prn1_preview() {CreateOneFormPage();LODOP.PREVIEW();};function prn1_print() {CreateOneFormPage();LODOP.PRINT();};function prn1_printA() {CreateOneFormPage();LODOP.PRINTA();};function CreateOneFormPage() {LODOP = getLodop();LODOP.PRINT_INIT("打印控件功能演示_Lodop功能_表單一");LODOP.SET_PRINT_STYLE("FontSize", 18);LODOP.SET_PRINT_STYLE("Bold", 1);LODOP.ADD_PRINT_TEXT(50, 231, 260, 39, "打印頁面部分內容");LODOP.ADD_PRINT_HTM(88, 200, 350, 600, document.getElementById("form1").innerHTML);};function prn2_preview() {CreateTwoFormPage();LODOP.PREVIEW();};function prn2_manage() {CreateTwoFormPage();LODOP.PRINT_SETUP();};function CreateTwoFormPage() {LODOP = getLodop();LODOP.PRINT_INIT("打印控件功能演示_Lodop功能_表單二");LODOP.ADD_PRINT_RECT(70, 27, 634, 242, 0, 1);LODOP.ADD_PRINT_TEXT(29, 236, 279, 38, "頁面內容改變布局打印");LODOP.SET_PRINT_STYLEA(2, "FontSize", 18);LODOP.SET_PRINT_STYLEA(2, "Bold", 1);LODOP.ADD_PRINT_HTM(88, 40, 321, 185, document.getElementById("form1").innerHTML);LODOP.ADD_PRINT_HTM(87, 355, 285, 187, document.getElementById("form2").innerHTML);LODOP.ADD_PRINT_TEXT(319, 58, 500, 30, "注:其中《表單一》按顯示大小,《表單二》在程序控制寬度(285px)內自適應調整");};function prn3_preview() {LODOP = getLodop();LODOP.PRINT_INIT("打印控件功能演示_Lodop功能_全頁");LODOP.ADD_PRINT_HTM(0, 0, "100%", "100%", document.documentElement.innerHTML);LODOP.PREVIEW();};</script>
</body>
</html>

3.考慮到部分讀者可能看不懂,補充完整代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WEB打印控件LODOP的樣例二:打印當前頁面的內容</title>
<meta name="keywords" content="Lodop、Lodop打印控件、WEB打印、C-Lodop、CLodop、lodop控件、云打印、手機打印、免費、AO打印">
<meta name="description" content="Lodop、Lodop打印控件、WEB打印、C-Lodop、CLodop、lodop控件、云打印、手機打印、免費、AO打印">
<script language="javascript" src="LodopFuncs.js"></script>
</head>
<body>
<iframe src="https://help.lodop.net:8143/k_hlp?type=url&fid=DA" width="500" height="46" frameborder="0" scrolling="no" style="float:right;background:inherit;"></iframe>
<h2><font color="#009999">演示如何打印當前頁面的內容:</font>
</h2>
<form id="form1"><table border="1" width="300" id="tb01" bgcolor="#CCFFCC" style="border:solid 1px black;border-collapse:collapse"><tr><td width="133" id="mtb001"><font face="黑體" color="#FF0000" size="3"><u>&nbsp;《表單一》&nbsp;</u></font></td></tr></table><table border="1" width="300" height="106" cellspacing="0" bgcolor="#CCFFFF"style="border-collapse:collapse;table-layout:fixed;border:solid 1px black;"><tr><td width="66" height="16" style="border:solid 1px black"><font color="#0000FF">A</font><font color="#0000FF">等</font></td>
<td width="51" height="16" style="border:solid 1px black"><font color="#0000FF">B</font><font color="#0000FF">等</font></td>
<td width="51" height="16" style="border:solid 1px black"><font color="#0000FF">C</font><font color="#0000FF">等</font></td></tr> 
<tr>
<td width="66" height="16" style="border:solid 1px black">A<sub>01</sub></td>
<td width="80" height="12" style="border:solid 1px black">中-001</td>
<td width="51" height="12" style="border:solid 1px black">C1<sup>x</sup></td>
</tr> 
<tr>
<td width="66" height="16" style="border:solid 1px black">A<sub>02</sub>Φ</td>
<td width="80" height="16" style="border:solid 1px black">日-スの</td>
<td width="51" height="16" style="border:solid 1px black"><font face='Vernada'>7&#13221</font></td>
</tr> <tr><td width="66" height="16" style="border:solid 1px black;overflow:hidden">A<sub>03</sub><nobr>over隱藏后面的:1234567890</nobr>
</td><td width="80" height="16" style="border:solid 1px black;overflow:hidden">韓-??</td><td width="51" height="16">C3<sup>x</sup>
</td></tr> </table>
</form>
<br>
<div id="form2"><table border="1" width="100%" id="tb01" bgcolor="#CCFFCC" style="border:solid 1px black;border-collapse:collapse"><tr><td width="133" id="mtb001"><font face="黑體" color="#FF0000" size="3">《表單二》&copy;</font></td></tr></table><table border="1" width="100%" height="106" cellspacing="0" bgcolor="#CCFFFF" style="border:solid 1px black;border-collapse:collapse"><tr><td width="66" height="16" style="border:solid 1px black"><font color="#0000FF">X</font><font color="#0000FF">等</font></td>
<td width="51" height="16" style="border:solid 1px black"><font color="#0000FF">Y等</font></td>
<td width="51" height="16" style="border:solid 1px black"><font color="#0000FF">Z等</font></td></tr> <tr><td width="66" height="12" style="border:solid 1px black"><span style="font-family:Wingdings;font-size:25px;" >&#254;</span>X001</td>
<td width="51" height="12" style="border:solid 1px black"><strike>Y001</strike></td>
<td width="51" height="44" rowspan="3"  style="border:solid 1px black"><ol style="list-style-type:upper-alpha;list-style-position:inside;"><li>Z001</li><li>Z002</li><li>Z003</li><li>Z004</li><li>Z005</li></ol></td></tr> 
<tr><td width="30%" height="16" style="border:solid 1px black"><strong>X002</strong></td>
<td width="51" height="16"  style="border:solid 1px black"><u>Y002</u><span style="visibility: hidden">hidesome</span></td></tr> <tr><td width="30%" height="16" style="border:solid 1px black"><span style="text-decoration: overline">X003</span>
</td><td width="40%" height="16" style="border:solid 1px black"><em>Y003</em><input type="radio" name="R1"><input type="radio" name="R1" checked></td></tr> </table>
</div>
<p>1:若只打印《表單一》,看一下<a href="javascript:prn1_preview()">打印預覽</a>,可<a href="javascript:prn1_print()">直接打印</a>也可      
<a href="javascript:prn1_printA()">選擇打印機</a>打印。<br><br>
2:若《表單一》和《表單二》一起并列輸出,看一下<a href="javascript:prn2_preview()">打印預覽</a>,其布局風格可<a href="javascript:prn2_manage()">打印維護</a>調整。
<p>3:若打印整個頁面,看看<a href="javascript:prn3_preview()">打印預覽</a>。<br><br>
本例要點是用Document的innerHTML方法把打印目標的超文本送給控件。  
<p><a href="../LodopDemo.html">&lt;&lt;回樣例目錄</a>
</p>   
<script language="javascript" type="text/javascript">   var LODOP; //聲明為全局變量 function prn1_preview() {	CreateOneFormPage();	LODOP.PREVIEW();	};function prn1_print() {		CreateOneFormPage();LODOP.PRINT();	};function prn1_printA() {		CreateOneFormPage();LODOP.PRINTA(); 	};	function CreateOneFormPage(){LODOP=getLodop();  LODOP.PRINT_INIT("打印控件功能演示_Lodop功能_表單一");LODOP.SET_PRINT_STYLE("FontSize",18);LODOP.SET_PRINT_STYLE("Bold",1);LODOP.ADD_PRINT_TEXT(50,231,260,39,"打印頁面部分內容");LODOP.ADD_PRINT_HTM(88,200,350,600,document.getElementById("form1").innerHTML);};	                     function prn2_preview() {	CreateTwoFormPage();	LODOP.PREVIEW();	};function prn2_manage() {	CreateTwoFormPage();LODOP.PRINT_SETUP();	};	function CreateTwoFormPage(){LODOP=getLodop();  LODOP.PRINT_INIT("打印控件功能演示_Lodop功能_表單二");LODOP.ADD_PRINT_RECT(70,27,634,242,0,1);LODOP.ADD_PRINT_TEXT(29,236,279,38,"頁面內容改變布局打印");LODOP.SET_PRINT_STYLEA(2,"FontSize",18);LODOP.SET_PRINT_STYLEA(2,"Bold",1);LODOP.ADD_PRINT_HTM(88,40,321,185,document.getElementById("form1").innerHTML);LODOP.ADD_PRINT_HTM(87,355,285,187,document.getElementById("form2").innerHTML);LODOP.ADD_PRINT_TEXT(319,58,500,30,"注:其中《表單一》按顯示大小,《表單二》在程序控制寬度(285px)內自適應調整");};              function prn3_preview(){LODOP=getLodop();  LODOP.PRINT_INIT("打印控件功能演示_Lodop功能_全頁");LODOP.ADD_PRINT_HTM(0,0,"100%","100%",document.documentElement.innerHTML);LODOP.PREVIEW();	};	
</script> </body>
</html>

如果錯誤,請斧正!謝謝!?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/72050.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/72050.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/72050.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Claude、ChatGPT、Gemini等主流AI模型。分別詳細介紹它們并進行對比,需要指出關鍵的時間點

以下是關于Claude、ChatGPT和Gemini三大主流AI模型的詳細介紹及對比分析&#xff0c;結合關鍵時間點和核心技術特征&#xff1a; 1. Claude&#xff08;Anthropic&#xff09; 關鍵時間點與版本迭代 2023年3月&#xff1a;初代Claude發布&#xff0c;定位為安全可控的對話模型…

統計登錄系統10秒內連續登錄失敗超過3次的用戶

為防止暴力破解用戶賬號的行為&#xff0c;在輸入賬號和密碼時一般都會限制用戶嘗試密碼輸出錯誤的次數&#xff0c;如果用戶多次輸錯密碼后&#xff0c;將在一段時間內鎖定賬號&#xff0c;常見的有銀行類APP、個稅App等應用&#xff0c;如下是用戶賬號密碼輸入錯誤的提示圖&a…

vue3通過render函數實現一個菜單下拉框

背景說明 鼠標移動到產品服務上時&#xff0c;出現標紅的下拉框。 使用純css的方案實現最簡單&#xff0c;但是沒什么技術含量&#xff0c;棄之&#xff1b;使用第三方組件庫&#xff0c;樣式定制麻煩棄之。因此&#xff0c;我們使用vue3直接在頁面創建一個dom作為下拉框吧。…

二、重學C++—C語言核心

上一章節&#xff1a; 一、重學C—C語言基礎-CSDN博客https://blog.csdn.net/weixin_36323170/article/details/146002496?spm1001.2014.3001.5502 本章節代碼&#xff1a; cPart2 CuiQingCheng/cppstudy - 碼云 - 開源中國https://gitee.com/cuiqingcheng/cppstudy/tree/…

2-003:MySQL 三層 B+ 樹能存多少數據?

1. 計算 B 樹能存儲多少數據 參數設定 每個數據頁&#xff08;Page&#xff09;大小&#xff1a;16KB&#xff08;16384 字節&#xff09;每個索引節點存儲的子節點數量&#xff1a; 索引項大小&#xff1a; 假設 bigint&#xff08;主鍵&#xff09;占 8 字節每個索引項存儲…

幾種常見的虛擬環境工具(Virtualenv、Conda、System Interpreter、Pipenv、Poetry)的區別和特點總結

在 PyCharm 中創建虛擬環境是一個非常直接的過程&#xff0c;可以幫助你管理項目依賴&#xff0c;確保不同項目之間的依賴不會沖突。 通過 PyCharm 創建虛擬環境 打開 PyCharm 并選擇或創建一個項目。 打開項目設置&#xff1a; 在 Windows/Linux 上&#xff0c;可以通過點擊…

Windows系統編程項目(四)窗口管理器

本章我們講解基于對話框的MFC窗口相關的操作 該管理器要實現以下功能 初始化列表 初始化列表表頭 初始化圖像列表 初始化列表 功能實現 加載菜單 刷新列表 結束進程 隱藏窗口 最大化窗口 最小化窗口 手搓窗口管理器 // CWindowManage.cpp: 實現文件 //#include "pch.h&…

優化 NFS 掛載參數以提升可靠性與容錯性

在現代 IT 基礎設施中&#xff0c;NFS&#xff08;網絡文件系統&#xff09;被廣泛用于共享文件和存儲。雖然 NFS 提供了便利&#xff0c;但在某些情況下&#xff0c;掛載失敗或網絡問題可能導致掛載操作不穩定。為了提高掛載的可靠性和容錯性&#xff0c;我們可以通過優化 NFS…

JavaScript事件循環機制

JavaScript 事件循環機制&#xff08;Event Loop&#xff09;詳解 JavaScript 是 單線程、非阻塞 語言&#xff0c;依賴 事件循環&#xff08;Event Loop&#xff09; 來實現異步編程。它的執行模型包括 調用棧&#xff08;Call Stack&#xff09;、任務隊列&#xff08;Task …

大模型架構記錄4-文檔切分 (chunks構建)

chunks&#xff1a; 塊 trunks : 樹干 “RAG”通常指 檢索增強生成&#xff08;Retrieval-Augmented Generation&#xff09; 主要框架&#xff1a;用戶提query&#xff0c;找到和它相關的&#xff0c;先把問題轉換為向量&#xff0c;和向量數據庫的數據做比較&#xff0c;檢…

物聯網IoT系列之MQTT協議基礎知識

文章目錄 物聯網IoT系列之MQTT協議基礎知識物聯網IoT是什么&#xff1f;什么是MQTT&#xff1f;為什么說MQTT是適用于物聯網的協議&#xff1f;MQTT工作原理核心組件核心機制 MQTT工作流程1. 建立連接2. 發布和訂閱3. 消息確認4. 斷開連接 MQTT工作流程圖MQTT在物聯網中的應用 …

第27周JavaSpringboot電商進階開發 1.企業級用戶驗證

課程筆記&#xff1a;注冊郵箱驗證 一、概述 從本小節開始&#xff0c;將學習如何進行注冊郵箱驗證。主要任務是給項目配置一個公共郵箱&#xff08;可自己注冊或由公司提供&#xff09;&#xff0c;用于向用戶發送驗證碼&#xff0c;幫助用戶完成注冊流程。課程中以QQ郵箱為…

數據庫---sqlite3

數據庫&#xff1a; 數據庫文件與普通文件區別: 1.普通文件對數據管理(增刪改查)效率低 2.數據庫對數據管理效率高,使用方便 常用數據庫: 1.關系型數據庫: 將復雜的數據結構簡化為二維表格形式 大型:Oracle、DB2 中型:MySql、SQLServer …

音視頻軟件工程師面試題

一、基礎知識 編解碼相關 H.264 和 H.265(HEVC)的主要區別是什么?視頻編解碼的基本流程是什么?關鍵技術有哪些?音頻編解碼(如 AAC、MP3、Opus)的區別和應用場景?什么是 B 幀、P 幀、I 幀?它們的作用是什么? 流媒體協議RTMP、HTTP-FLV、HLS、WebRTC 的區別和應用場景…

【系統架構設計師】測試方法

目錄 1. 說明2. 靜態測試3. 動態測試4. 黑盒測試5. 白盒測試6. 灰盒測試7. 自動化測試8.例題8.1 例題1 1. 說明 1.軟件測試方法的分類有很多種&#xff0c;以測試過程中程序執行狀態為依據可分為靜態測試&#xff08;Static Testing&#xff0c;ST&#xff09;和動態測試&…

tomcat配置應用----server.xml文件具體配置

1.tomcat項目目錄 默認項目目錄&#xff1a;tomcat安裝目錄/webapps目錄 如上圖所示&#xff0c;在tomcat的項目目錄下有很多子文件夾&#xff0c;這些子文件夾中都有一個項目首頁。 如上圖所示&#xff0c;將來我們去使用IP加端口號的方式去訪問tomcat的時候&#xff0c;默認是…

Spring Boot 調用DeepSeek API的詳細教程

目錄 前置準備步驟1&#xff1a;創建Spring Boot項目步驟2&#xff1a;配置API參數步驟3&#xff1a;創建請求/響應DTO步驟4&#xff1a;實現API客戶端步驟5&#xff1a;創建控制器步驟6&#xff1a;異常處理步驟7&#xff1a;測試驗證單元測試示例Postman測試請求 常見問題排查…

多維數據聚合方案:SQL GROUPING SETS深度解析

一、什么是GROUPING SETS&#xff1f; GROUPING SETS是SQL標準中的多維聚合運算符&#xff0c;允許在單個查詢中實現多維度組合的分組統計。相較于傳統UNION ALL方案&#xff0c;性能可提升3-10倍&#xff08;TPC-DS基準測試&#xff09;。 二、核心語法解析 SELECT column1,…

Excel中國式排名,3種方法!

大家好&#xff0c;我是小魚。 什么是中國式排名呢&#xff1f; 舉個例子比如說公司一共有10名員工進行成績考核&#xff0c;如果9個人考核成績都是90分&#xff0c;你是89分&#xff0c;按照國際慣用的排名法則&#xff1a;9 個人考核成績并列第一&#xff0c;你第10名&…