asp.net lodop单个打印
1、首先在列表页面增加以下代码
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CertificateSearch.aspx.cs" Inherits="DTMIS.Web.StudentMG.CertificateSearch" %> <!DOCTYPE html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>StudentSearch</title> <script src="../js/jquery-1.4.4.min.js" type="text/javascript"></script> <script src="../js/My97DatePicker/WdatePicker.js"></script> <link href="../Include/StyleFile.css" type="text/css" rel="stylesheet"> <script type="text/javascript"> function SelectAll(tempControl) { var theBox = tempControl; xState = theBox.checked; elem = theBox.form.elements; for (i = 0; i < elem.length; i++) { if (elem[i].type == "checkbox" && elem[i].id != theBox.id) { if (elem[i].checked != xState) { elem[i].click(); } } } } function changecolor(cbo, o) { var theBox = cbo; var tr = document.getElementById(o); if (theBox.checked) { tr.style.backgroundColor = "#E0E0E0"; } else { tr.style.backgroundColor = "Transparent"; } } //批量打印 function PrintUrl() { var canshu = "<%= canshu%>"; var canshuUrl = ""; var canshus = canshu.split('|'); var chks = document.getElementsByName("DataGrid1_CheckSingle"); if (chks != null && chks.length != 0) { var len = chks.length; for (var i = 0; i < len; i++) { var chk = chks[i] if (chk.checked) { canshuUrl += canshus[i] + ","; } } } if (canshuUrl != "") { var canshusub = canshuUrl.substr(0, canshuUrl.length - 1); window.open("CertificatePrintNew.aspx?canshu=" + canshusub); } else { alert("请选择需打印学员!"); } } </script> </head> <body ms_positioning="GridLayout" bottommargin="0" leftmargin="0" topmargin="0" rightmargin="0" background="../Images/BackGround.gif"> <form id="Form1" method="post" runat="server"> <table height="100%" cellspacing="0" cellpadding="0" width="100%" border="0"> <tr> <td valign="top" width="100%" background="../Images/BackGround.gif"> <table cellspacing="1" cellpadding="0" width="98%" align="center" border="0"> <tr> <td bgcolor="#cccccc" height="23" width="70%"> 学员管理 -- 学员信息</td> <td bgcolor="#cccccc" align="center" width="30%"> </td> </tr> <tr> <td valign="top" colspan="2"> <br> <asp:Panel ID="SearchPanel" runat="server" Width="100%"> <table cellspacing="0" cellpadding="0" width="100%" align="center" border="0"> <tr> <td bgcolor="#006d4a"> <table cellspacing="1" cellpadding="1" width="100%" align="center" border="0"> <tr> <td class="tr" align="center" colspan="4" height="22"> 学员信息查询</td> </tr> <tr> <td class="BDTD"> 所属驾校</td> <td class="WHITETD"> <asp:DropDownList ID="ddlDrvNo" runat="server"> </asp:DropDownList></td> <td class="BDTD" width="15%"> 学员姓名</td> <td class="WHITETD" width="35%"> <asp:TextBox ID="txtS_Name" runat="server" Width="100px"></asp:TextBox></td> <%-- <td class="WHITETD"> </td>--%> </tr> <tr> <td class="BDTD"> 证件号</td> <td class="WHITETD"> <asp:TextBox ID="txtS_IDCardNo" runat="server" Width="160px"></asp:TextBox> </td> <td class="BDTD">报名日期</td> <td class="WHITETD"> <input runat="server" readonly="readonly" id="BgDate" onfocus="WdatePicker({Date:'%y-%M-{%d}'})" /> 至 <input runat="server" readonly="readonly" id="EdDate" onfocus="WdatePicker({Date:'%y-%M-{%d}'})" /> </td> </tr> <tr> <td class="BDTD"> 打印状态</td> <td class="WHITETD"> <asp:DropDownList ID="ddlPrintStatus" runat="server"> <asp:ListItem Value="">全部记录</asp:ListItem> <asp:ListItem Value="1">已打印</asp:ListItem> <asp:ListItem Selected="True" Value="0">未打印</asp:ListItem> </asp:DropDownList> </td> <td class="BDTD"> </td> <td class="WHITETD"> </td> </tr> <%-- <tr> <td class="BDTD" width="15%"> 学员编号</td> <td class="WHITETD" width="35%"> <asp:TextBox ID="txtS_No" runat="server" Width="160px"></asp:TextBox></td> <td class="BDTD" width="15%"> 学员姓名</td> <td class="WHITETD" width="35%"> <asp:TextBox ID="txtS_Name" runat="server" Width="100px"></asp:TextBox></td> </tr>--%> <%-- <tr> <td class="BDTD"> 审批状态</td> <td class="WHITETD"> <asp:DropDownList id="ddlAuditStatus" runat="server"> <asp:ListItem Selected="True"> </asp:ListItem> <asp:ListItem>通过</asp:ListItem> <asp:ListItem>未通过</asp:ListItem> <asp:ListItem>未审核</asp:ListItem> </asp:DropDownList> </td> <td class="BDTD"> 批量编号</td> <td class="WHITETD"> <asp:DropDownList ID="ddlS_Batch" runat="server" Enabled="false"> </asp:DropDownList></td> </tr>--%> <%-- <tr> <td class="BDTD"> 证件类型</td> <td class="WHITETD"> <asp:DropDownList ID="ddlPaType" runat="server"> </asp:DropDownList> </td> </tr>--%> <%-- <tr> <td class="BDTD"> 学员状态</td> <td class="WHITETD"> <asp:DropDownList ID="ddlS_Status" runat="server"> </asp:DropDownList> </td> <td class="BDTD"> 学车类型</td> <td class="WHITETD"> <asp:DropDownList ID="ddlS_StudyVehicleType" runat="server"> <asp:ListItem Value=" "></asp:ListItem> </asp:DropDownList> </td> </tr>--%> <tr bgcolor="#cccccc"> <td align="center" colspan="4" height="30"> <asp:Button ID="Button1" runat="server" Width="60PX" Text="搜索" Height="22px" Font-Size="12px" OnClick="Button1_Click"></asp:Button> <%-- <asp:Button ID="Button5" runat="server" Font-Size="12px" Height="22px" Text="导出" Width="60PX" onclick="Button5_Click" />--%> </td> </tr> <tr> <td colspan="4" height="30" > <input id="btnPrint" runat="server" type="button" onclick="PrintUrl();" value="批量打印" style="float:right;" /> </td> </tr> </table> </td> </tr> </table> </asp:Panel> <%-- <asp:Panel ID="pAudit" Width="100%" runat="server"> <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"> <tr bgcolor="#cccccc"> <td align="right" height="25px"> 审批操作: <asp:DropDownList ID="ddlAudit" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlAudit_SelectedIndexChanged"> <asp:ListItem Selected="True"> </asp:ListItem> <asp:ListItem>通过</asp:ListItem> <asp:ListItem>未通过</asp:ListItem> </asp:DropDownList> </td> </tr> </table> </asp:Panel>--%> <asp:Panel ID="ResultPanel" runat="server" Width="100%"> <table cellspacing="1" cellpadding="1" width="100%" align="center" border="0"> <tr> <td align="center"> <asp:DataGrid ID="DataGrid1" runat="Server" Width="100%" BorderColor="#006D4A" BorderWidth="1px" PageSize="15" AutoGenerateColumns="False" OnItemDataBound="DataGrid1_ItemDataBound" > <AlternatingItemStyle BackColor="#F7F7F7"></AlternatingItemStyle> <ItemStyle HorizontalAlign="Center" Height="20px"></ItemStyle> <HeaderStyle HorizontalAlign="Center" Height="22px" ForeColor="White" VerticalAlign="Middle" BackColor="#006D4A"></HeaderStyle> <Columns> <asp:TemplateColumn HeaderText="序号" ItemStyle-Width="6%"> <ItemTemplate><%# Container.ItemIndex + 1%></ItemTemplate> </asp:TemplateColumn> <asp:BoundColumn DataField="D_Name" HeaderText=" 所属驾校" ItemStyle-Width="7%"></asp:BoundColumn> <%-- <asp:BoundColumn DataField="RS_Name" HeaderText="招生点" ItemStyle-Width="7%" Visible="False"></asp:BoundColumn>--%> <%-- <asp:BoundColumn DataField="S_No" HeaderText="学员编号" ItemStyle-Width="7%"></asp:BoundColumn>--%> <asp:BoundColumn DataField="S_Name" HeaderText="学员姓名" ItemStyle-Width="7%"></asp:BoundColumn> <%-- <asp:BoundColumn DataField="S_PaType" HeaderText="证件类型" ItemStyle-Width="7%"></asp:BoundColumn>--%> <asp:BoundColumn DataField="S_IDCardNo" HeaderText="证件号" ItemStyle-Width="7%"></asp:BoundColumn> <%--<asp:BoundColumn DataField="S_Tel" HeaderText="联系电话" ItemStyle-Width="7%"></asp:BoundColumn>--%> <asp:BoundColumn DataField="S_StudyVehicleType" HeaderText="学车类型" ItemStyle-Width="7%"></asp:BoundColumn> <%--<asp:BoundColumn DataField="S_ContractNo" HeaderText="合同编号"></asp:BoundColumn>--%> <asp:BoundColumn DataField="S_RegisterDate" HeaderText="报名日期" ItemStyle-Width="7%" DataFormatString="{0:yyyy-MM-dd}" ></asp:BoundColumn> <%--<asp:BoundColumn DataField="S_ActiveTime" HeaderText="激活日期" ItemStyle-Width="7%"></asp:BoundColumn>--%> <%--<asp:BoundColumn DataField="S_Status" HeaderText="学员状态" ItemStyle-Width="7%"></asp:BoundColumn>--%> <%--<asp:BoundColumn DataField="S_Flag" HeaderText="审批状态" ItemStyle-Width="6%"></asp:BoundColumn>--%> <%-- <asp:TemplateColumn HeaderText="学习进度" ItemStyle-Width="6%"> <ItemTemplate> <a href='w_studentStudyResultYC.aspx?SNo=<%# (DataBinder.Eval(Container,"DataItem.S_No"))%>'>学习进度</a> </ItemTemplate> </asp:TemplateColumn>--%> <asp:TemplateColumn HeaderText="操作" ItemStyle-Width="6%"> <ItemTemplate> <a target="_blank" style=" color:Blue;"href='CertificatePrint.aspx?ID=<%# (DataBinder.Eval(Container,"DataItem.ID"))%>'>结业证打印</a> </ItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="选择" ItemStyle-Width="6%" > <HeaderTemplate> <asp:CheckBox ID="check1" runat="server" onclick="javascript:SelectAll(this);" /> </HeaderTemplate> <ItemTemplate> <asp:Label ID="lbid" runat="server" Text='<%# DataBinder.Eval(Container,"DataItem.ID")%>' Visible="False"></asp:Label> <input id="CheckSingle" type="checkbox" name="<%#DataGrid1.ClientID%>_CheckSingle" /> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid> </td> </tr> <tr> <td bgcolor="#CCCCCC" align="right"> <asp:LinkButton ID="lbFirst" runat="server" OnClick="lbFirst_Click" Enabled="false">首页</asp:LinkButton> <asp:LinkButton ID="lbBack" runat="server" OnClick="lbBack_Click" Enabled="false">上一页</asp:LinkButton> <asp:LinkButton ID="lbNext" runat="server" OnClick="lbNext_Click" Enabled="false">下一页</asp:LinkButton> <asp:LinkButton ID="lbLast" runat="server" OnClick="lbLast_Click" Enabled="false">末页</asp:LinkButton> 第<asp:DropDownList ID="ddlPageSelect" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlPageSelect_SelectedIndexChanged"> <asp:ListItem Value="1">1/1</asp:ListItem> </asp:DropDownList>页 共有<asp:Label ID="lbTotal" runat="server"></asp:Label>个记录 每页<input id="tbPageSize" runat="server" style="width:35px;" value="15" />个记录 </td> </tr> </table> </asp:Panel> </td> </tr> </table> </td> </tr> </table> </form> </body> </html>
2、打印页面(前台)
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CertificatePrint.aspx.cs" Inherits="DTMIS.Web.StudentMG.CertificatePrint" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=8" /> <title></title> <script src="../js/jquery-1.7.2.min.js"></script> <script src="../js/LodopFuncs.js"></script> <object id="LODOP_OB" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width="0" height="0"> <embed id="LODOP_EM" type="application/x-print-lodop" width="0" height="0" pluginspage="install_lodop.exe"></embed> </object> <script> function ClosePrintPage() { window.opener = null; window.open('', '_self', ''); window.close(); } var LODOP; //声明为全局变量 function showPrint() { var stuid = '<%=iStudentID%>'; CreatePage(); LODOP.SET_SHOW_MODE("BKIMG_IN_PREVIEW", 1); //注:"BKIMG_IN_PREVIEW"-预览包含背景图 "BKIMG_IN_FIRSTPAGE"- 仅首页包含背景图 LODOP.SET_SHOW_MODE("HIDE_SBUTTIN_PREVIEW", 1); var printCount = LODOP.PREVIEW(); //LODOP.PRINT_DESIGN(); if (printCount > 0) { //DTMIS.Web.StudentMG.w_studentGradPa.UpdatePrintStatus(); $.ajax({ type: "post", url: "CertificatePrint.aspx/UpdatePrintStatus", dataType: "json", data: "{'stuid':" + stuid + "}", contentType: "application/json;charsert=utf-8;", success: function (data) { } }); } ClosePrintPage(); } function CreatePage() { LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM')); LODOP.SET_PRINT_MODE("PRINT_PAGE_PERCENT", "100%");// //LODOP.PRINT_INITA(0, 0, 3800, 3600, "廊坊驾培结业证书打印");//参数说明:(距上,距左,打印区宽度,打印区高度) LODOP.PRINT_INITA(0, 0, 1123, 756, "廊坊驾培结业证书打印"); LODOP.SET_PRINT_PAGESIZE(1, 1850, 2680, "A4"); LODOP.SET_SHOW_MODE("HIDE_PAPER_BOARD", 1); //隐藏背景条文 LODOP.SET_SHOW_MODE("HIDE_SBUTTIN_PREVIEW", 1); LODOP.SET_SHOW_MODE("LANDSCAPE_DEFROTATED", 1); //注:"BKIMG_IN_PREVIEW"-预览包含背景图 "BKIMG_IN_FIRSTPAGE"- 仅首页包含背景图 //LODOP.ADD_PRINT_IMAGE(8, 15, 2000, 1760, "<img border='0' src='../Images/001.jpg' />");//设置背景图片 LODOP.ADD_PRINT_TEXT(85, 70, 280, 50, "<%=S_GraduateNo %>");//证件编号 LODOP.SET_PRINT_STYLEA(0, "FontSize", 16); LODOP.SET_PRINT_STYLEA(0, "Bold", 1); LODOP.SET_PRINT_STYLEA(0, "FontName", "楷体"); //LODOP.ADD_PRINT_IMAGE(100, 400, 132, 185, "<img border='0' src='<%= S_Pic%>' />");//照片 LODOP.ADD_PRINT_TEXT(165, 55, 200, 50, "<%=S_Name %>");//学员名称 LODOP.SET_PRINT_STYLEA(0, "FontSize", 16); LODOP.SET_PRINT_STYLEA(0, "Bold", 1); LODOP.SET_PRINT_STYLEA(0, "FontName", "楷体"); LODOP.ADD_PRINT_TEXT(165, 165, 100, 50, "<%=S_Sex %>");//性别 LODOP.SET_PRINT_STYLEA(0, "FontSize", 16); LODOP.SET_PRINT_STYLEA(0, "Bold", 1); LODOP.SET_PRINT_STYLEA(0, "FontName", "楷体"); LODOP.ADD_PRINT_TEXT(190, 245, 100, 50, "<%=S_StudyVehicleType %>");//准驾车型 LODOP.SET_PRINT_STYLEA(0, "FontSize", 16); LODOP.SET_PRINT_STYLEA(0, "Bold", 1); LODOP.SET_PRINT_STYLEA(0, "FontName", "楷体"); LODOP.ADD_PRINT_TEXT(165, 230, 100, 50, "<%=sRegYear %>");//报名时间(年) LODOP.SET_PRINT_STYLEA(0, "FontSize", 16); LODOP.SET_PRINT_STYLEA(0, "Bold", 1); LODOP.SET_PRINT_STYLEA(0, "FontName", "楷体"); LODOP.ADD_PRINT_TEXT(165, 310, 100, 50, "<%=sRegMonth %>");//报名时间(月) LODOP.SET_PRINT_STYLEA(0, "FontSize", 16); LODOP.SET_PRINT_STYLEA(0, "Bold", 1); LODOP.SET_PRINT_STYLEA(0, "FontName", "楷体"); LODOP.ADD_PRINT_TEXT(165, 350, 100, 50, "<%=sRegDay %>");//报名时间(日) LODOP.SET_PRINT_STYLEA(0, "FontSize", 16); LODOP.SET_PRINT_STYLEA(0, "Bold", 1); LODOP.SET_PRINT_STYLEA(0, "FontName", "楷体"); LODOP.ADD_PRINT_TEXT(190, 15, 100, 50, "<%=gRYear %>");//结业时间(年) LODOP.SET_PRINT_STYLEA(0, "FontSize", 16); LODOP.SET_PRINT_STYLEA(0, "Bold", 1); LODOP.SET_PRINT_STYLEA(0, "FontName", "楷体"); LODOP.ADD_PRINT_TEXT(190, 88, 100, 50, "<%=gRMonth %>");//结业时间(月) LODOP.SET_PRINT_STYLEA(0, "FontSize", 16); LODOP.SET_PRINT_STYLEA(0, "Bold", 1); LODOP.SET_PRINT_STYLEA(0, "FontName", "楷体"); LODOP.ADD_PRINT_TEXT(190, 130, 100, 50, "<%=gRDay %>");//结业时间(日) LODOP.SET_PRINT_STYLEA(0, "FontSize", 16); LODOP.SET_PRINT_STYLEA(0, "Bold", 1); LODOP.SET_PRINT_STYLEA(0, "FontName", "楷体"); LODOP.ADD_PRINT_TEXT(240, 245, 500, 50, "<%=D_Name %>");//培训机构 LODOP.SET_PRINT_STYLEA(0, "FontSize", 16); LODOP.SET_PRINT_STYLEA(0, "Bold", 1); LODOP.SET_PRINT_STYLEA(0, "FontName", "楷体"); LODOP.ADD_PRINT_TEXT(265, 215, 100, 50, "<%=sPrintYear %>");//打印时间(年) LODOP.SET_PRINT_STYLEA(0, "FontSize", 12); LODOP.SET_PRINT_STYLEA(0, "Bold", 1); LODOP.SET_PRINT_STYLEA(0, "FontName", "楷体"); LODOP.ADD_PRINT_TEXT(265, 295, 100, 50, "<%=sPrintMonth %>");//打印时间(月) LODOP.SET_PRINT_STYLEA(0, "FontSize", 12); LODOP.SET_PRINT_STYLEA(0, "Bold", 1); LODOP.SET_PRINT_STYLEA(0, "FontName", "楷体"); LODOP.ADD_PRINT_TEXT(265, 348, 100, 50, "<%=sPrintDay %>");//打印时间(日) LODOP.SET_PRINT_STYLEA(0, "FontSize", 12); LODOP.SET_PRINT_STYLEA(0, "Bold", 1); LODOP.SET_PRINT_STYLEA(0, "FontName", "楷体"); } </script> </head> <body onload="showPrint()"> <form id="form1" style="margin: 0px; padding: 0px; text-align: left;" runat="server"> <div id="div_PrintDown"> <input type="button" value="打印预览" name="B3" onclick="showPrint()" /> </div> </form> </body> </html>
3、后台代码
using AjaxPro; using DTMIS.BLL; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.Services; using System.Web.UI; using System.Web.UI.WebControls; namespace DTMIS.Web.StudentMG { public partial class CertificatePrint : System.Web.UI.Page { private string ModuleDir = "StudentMG/"; private string ModulePage = "CertificatePrint.aspx"; public static int iStudentID;//学员编号 public string S_GraduateNo;//资格证号 public string S_Name;//姓名 public string S_Sex;//性别 public DateTime S_RegisterDate;//报名日期 public string S_Pic;//照片 public string S_StudyVehicleType;//准驾车型 public string D_Name;//驾校 protected string sRegYear; protected string sRegMonth; protected string sRegDay; protected string gRYear; protected string gRMonth; protected string gRDay; protected string sPrintYear; protected string sPrintMonth; protected string sPrintDay; protected void Page_Load(object sender, EventArgs e) { //if (!Common.canAccess(this.ModuleDir + this.ModulePage)) //{ // base.Response.Redirect("../NoPower.html"); //} if (!IsPostBack) { Utility.RegisterTypeForAjax(typeof(CertificatePrint)); iStudentID = Convert.ToInt32(base.Request.QueryString["ID"]); DataSet set = BLL.T_Student_Base.getStudentData(iStudentID); if (set.Tables.Count > 0) { foreach (DataRow item in set.Tables[0].Rows) { DateTime time; DateTime time1; S_GraduateNo = item["S_GraduateNo"].ToString().Trim(); S_Name = item["S_Name"].ToString().Trim(); S_Sex = item["S_Sex"].ToString().Trim(); S_Pic = ConvertUrl(item["S_Pic"].ToString().Trim()); S_StudyVehicleType = item["S_StudyVehicleType"].ToString().Trim(); D_Name = item["D_Name"].ToString().Trim(); //报名日期 if (item["S_RegisterDate"].ToString() != "") { time = Convert.ToDateTime(item["S_RegisterDate"].ToString()); sRegYear = time.Year.ToString(); sRegMonth = time.Month.ToString(); sRegDay = time.Day.ToString(); } //结业日期 if (item["A_AddTime"].ToString() != "") { time1 = Convert.ToDateTime(item["A_AddTime"].ToString()); gRYear = time1.Year.ToString(); gRMonth = time1.Month.ToString(); gRDay = time1.Day.ToString(); } //打印时间 DateTime now = DateTime.Now; sPrintYear = now.Year.ToString(); sPrintMonth = now.Month.ToString(); sPrintDay = now.Day.ToString(); } } } } //[AjaxMethod] [WebMethod] public static string UpdatePrintStatus(string stuid) { string msg = string.Empty; int result = Common.Update("T_Student_Base", "IsGraducatePrint=1", "ID=" + stuid); if (result > 0) { msg = "ok"; } else { msg = "error"; } return msg; } private string ConvertUrl(string imgUrl) { if (!string.IsNullOrEmpty(imgUrl)) { imgUrl = imgUrl.Substring(1, imgUrl.Length - 1); string strDomain = "http://" + HttpContext.Current.Request.Url.Host; int iPort = HttpContext.Current.Request.Url.Port; string imgPath = strDomain + ":" + iPort.ToString() + "/" + imgUrl.Replace(Server.MapPath("/"), "").Replace(@"\", "/"); return imgPath; } else { return ""; } } } }
以上三步即可实现lodop打印