根據相應的操作系統,安裝install_lodop32.exe文件,它里面包含兩個exe文件install_lodop32.exe和install_lodop64.exe,在頁面的頭部中引入:
- <!--打印插件-->
- <scripttype="text/javascript"src="<%=basePath%>js/LodopFuncs.js"></script>
- <objectid="LODOP_OB"classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA"width=0height=0>
- <embedid="LODOP_EM"type="application/x-print-lodop"width=0height=0></embed>
- </object>
- <!--打印end-->
當我們在執行操作的時候,它會根據相應的操作系統(32位or64位),選擇相應的exe文件,下載安裝,這個安裝文件比較小,所以安裝起來也比較方便。卸載它也很簡單,只要復制這個exe文件,然后改名為:uninstall_lodop32.exe,點擊運行即可,安裝后我們就可以使用里面的JS函數了:
|
最基本的打印過程至少有初始化語句、添內容語句和打印語句三部分組成,例如: |
LODOP.PRINT_INIT("打印任務名");//首先一個初始化語句 LODOP.ADD_PRINT_TEXT(0,0,100,20,"文本內容一");//然后多個ADD語句及SET語句 LODOP.PRINT();//最后一個打印(或預覽、維護、設計)語句 |
結合各種函數,輸出用戶需要的結果:這里我使用的是我的案例,項目中由於文件內容比較長,也比較寬,所以我需要橫向打印,並且需要打印很多頁,每頁都要有固定標題和頁腳,例如第1頁/共3頁,代碼如下:
- varLODOP;//聲明為全局變量
- functionpreview(){
- CreatePrintPage();
- //打印預覽
- LODOP.PREVIEW();
- }
- functionsetup(){
- CreatePrintPage();
- //LODOP.PRINT_SETUP();
- LODOP.PRINT_DESIGN();//打印設置
- }
- functionprint(){
- CreatePrintPage();
- LODOP.PRINT();//打印
- }
- //初始化頁面
- functionCreatePrintPage(){
- //得到LODOP對象,注意head標簽里面需引入object和embed標簽
- LODOP=getLodop(document.getElementById('LODOP_OB'),document.getElementById('LODOP_EM'));
- //封裝我們的html元素
- varstrBodyStyle="<style>table,td{border:1solid#000000;border-collapse:collapse}</style>";
- //獲得id為content標簽里面的html元素
- varstrFormHtml=strBodyStyle+"<body>"+document.getElementById("content").innerHTML+"</body>";
- //打印初始化,頁面距離頂部10px,距離左邊10px,寬754px,高453px,給打印設置個標題
- LODOP.PRINT_INITA(10,10,754,453,"打印控件操作");
- //設置打印頁面屬性:2:表示橫向打印,0:定義紙張寬度,為0表示無效設置,A4:設置紙張為A4
- LODOP.SET_PRINT_PAGESIZE(2,0,0,"A4");
- //設置文本,參數(距離頁面頭部,距離頁面左邊距離,文本寬度,文本高度,文本內容)
- LODOP.ADD_PRINT_TEXT(21,300,300,30,"${unitType}${flowval}檢修記錄n");
- //給所添加的文本定義樣式,0:表示新添加的元素,相應的屬性,相應的值
- LODOP.SET_PRINT_STYLEA(0,"FontSize",15);
- LODOP.SET_PRINT_STYLEA(0,"ItemType",1);//固定標題,設置衛頁眉頁腳
- LODOP.SET_PRINT_STYLEA(0,"Horient",2);
- LODOP.SET_PRINT_STYLEA(0,"Bold",1);
- //同上
- LODOP.ADD_PRINT_TEXT(40,60,350,30,"機車號:${datePlan.jcType}${datePlan.jcnum}修程:${datePlan.fixFreque}檢修日期:${datePlan.kcsj}");
- LODOP.SET_PRINT_STYLEA(0,"ItemType",1);
- //添加html元素
- LODOP.ADD_PRINT_HTM(63,38,684,330,strFormHtml);
- LODOP.SET_PRINT_STYLEA(0,"FontSize",15);
- LODOP.SET_PRINT_STYLEA(0,"ItemType",4);
- LODOP.SET_PRINT_STYLEA(0,"Horient",3);
- LODOP.SET_PRINT_STYLEA(0,"Vorient",3);
- //添加一條線,參數(開始短點距離頭部距離,開始端點距左邊距離,結束端點距頭部距離,結束端點距左邊距離)
- LODOP.ADD_PRINT_LINE(53,23,52,725,0,1);
- LODOP.SET_PRINT_STYLEA(0,"ItemType",1);
- LODOP.SET_PRINT_STYLEA(0,"Horient",3);
- LODOP.ADD_PRINT_LINE(414,23,413,725,0,1);
- LODOP.SET_PRINT_STYLEA(0,"ItemType",1);
- LODOP.SET_PRINT_STYLEA(0,"Horient",3);
- LODOP.SET_PRINT_STYLEA(0,"Vorient",1);
- //LODOP.ADD_PRINT_TEXT(421,37,144,22,"左下腳的文本小標題");
- //LODOP.SET_PRINT_STYLEA(0,"Vorient",1);
- LODOP.ADD_PRINT_TEXT(421,542,165,22,"第#頁/共&頁");
- LODOP.SET_PRINT_STYLEA(0,"ItemType",2);
- LODOP.SET_PRINT_STYLEA(0,"Horient",1);
- LODOP.SET_PRINT_STYLEA(0,"Vorient",1);
- }
上面的函數都是自己通過學習它的API聯合起來用的,我的注釋可能會有些看不懂,希望大家能把API下載下來進行研究,其中它實現了很多功能哦!
1、畫一個名片大小的矩形邊框: |
LODOP.ADD_PRINT_RECT(10,55,360,220,0,1); |
邊框離紙張頂端10px(px是絕對值長度,等於1/96英寸,下同)距左邊55px、寬360px、高220px、 |
框為實線(0-實線 1-破折線 2-點線 3-點划線 4-雙點划線)、線寬為1px |
2、設置基本打印風格: |
LODOP.SET_PRINT_STYLE("FontSize",11); |
"FontSize"是系統關鍵字,表示設置字體大小,11是字體大小值,單位是pt。 |
3、在矩形框內打印姓名欄: |
LODOP.ADD_PRINT_TEXT(20,180,100,25,"郭德強"); |
姓名欄離紙張頂端20px、距左邊180px、寬100px、高25px、內容為“郭德強” |
4、設置姓名欄的打印風格: |
LODOP.SET_PRINT_STYLEA(2,"FontName","隸書"); |
LODOP.SET_PRINT_STYLEA(2,"FontSize",15); |
2是姓名欄的增加順序號,"FontName"和"FontSize"是系統關鍵字,表示設置字體名和字體大小。 |
"隸書"是字體名值,同操作系統的字體名,15是字體大小值,單位是pt。 |
序號設0表示最新對象,注意SET_PRINT_STYLEA與SET_PRINT_STYLE的區別。 |
5、下面打印其職務、地址、電話等(用基本風格): |
LODOP.ADD_PRINT_TEXT(53,187,75,20,"科學家"); LODOP.ADD_PRINT_TEXT(100,131,272,20,"地址:中國北京社會科學院附近東大街西胡同"); LODOP.ADD_PRINT_TEXT(138,132,166,20,"電話:010-88811888"); |
6、在發送以上指令前,一般要初始化並設置打印任務名: |
LODOP.PRINT_INIT("打印插件功能演示_代碼功能_名片"); |
初始化並指定打印任務名是"打印插件功能演示_代碼功能_名片" |
利用Lodop實現將頁面表格元素導出為excel:
- functionSaveAsFile(){
- //得到LODOP對象
- varLODOP=getLodop(document.getElementById('LODOP_OB'),document.getElementById('LODOP_EM'));
- LODOP.PRINT_INIT("");//初始化,因為不需要打印,所以不需要為其設置標題
- //增加打印表格,(距離頭部距離、距離左邊、寬度、高度),得到相應表格中的html元素
- LODOP.ADD_PRINT_TABLE(100,20,500,80,document.getElementById("content").innerHTML);
- //設置相應模式
- LODOP.SET_SAVE_MODE("Orientation",1);//Excel文件的頁面設置:橫向打印1-縱向,2-橫向;
- LODOP.SET_SAVE_MODE("LINESTYLE",1);//導出后的Excel是否有邊框
- LODOP.SET_SAVE_MODE("CAPTION","行安檢修記錄");//標題欄文本內容
- //LODOP.SET_SAVE_MODE("CENTERHEADER","行安檢修記錄");//頁眉內容
- //LODOP.SET_SAVE_MODE("PaperSize",9);//Excel文件的頁面設置:紙張大小9-對應A4
- //LODOP.SET_SAVE_MODE("Zoom",90);//Excel文件的頁面設置:縮放比例
- //LODOP.SET_SAVE_MODE("CenterHorizontally",true);//Excel文件的頁面設置:頁面水平居中
- //LODOP.SET_SAVE_MODE("CenterVertically",true);//Excel文件的頁面設置:頁面垂直居中
- //LODOP.SET_SAVE_MODE("QUICK_SAVE",true);//快速生成(無表格樣式,數據量較大時或許用到)
- //保存文件,以窗口彈出對話框的方式,讓用戶去選擇文件保存的位置,參數為文件保存的默認名稱
- LODOP.SAVE_TO_FILE("${datePlan.jcType}-${datePlan.jcnum}-${unitType}檢修記錄.xls");
- };
這里本人所列出來的兩個demo只是本人在項目中所用的,對其綜合應用了,其實它里面有很多方法可以供我們去操作,實現各種各樣的功能,我們只需要設置其中的參數,給打印頁面各個元素定好位置,距離頭部距離、距離左邊距離、垂直或者水平擺放、居左還是居中對齊等等,我們都可以在里面進行相應的設置,自己把各個元素定位好,我相信它肯定能實現我們打印時所想要的效果!!
俗話說,說一百遍看一萬遍,不如自己來寫一遍,大家嘗試着去研究一下吧!!
https://blog.csdn.net/u014236541/article/details/50536616