| C#一般处理程序+Lodop打印跨境电商电子面单
					当前位置:点晴教程→知识管理交流
					
					→『 技术文档交流 』
					
				 
 1. <table class="table table-bordered table-striped"> 2. <tbody> 3. <tr class="even gradeC"> 4. <td>波次单号:</td> 5. <td> 6. <input type="text" runat="server" id="txtWaveNo" value="SO1512150540" /></td> 7. <td>SO订单号:</td> 8. <td> 9. <input type="text" runat="server" id="txtSoNo" /> 10. </td> 11. </tr> 12. <tr class="odd gradeA"> 13. <td colspan="4"><input type="button" class="btn btn-info" id="btnPrint" value="比利时小包打印" runat="server" />   <input type="button" class="btn btn-info" id="btnPrint" value="荷兰小包打印" runat="server" /> 14. <input type="button" class="btn btn-info" id="btnFoShanPrint" value="佛山小包打印" runat="server" /> 15. <span style="color:red">友情提示:可选择扫描波次或者SO单号进行打印。</span> 16. </td> 17. </tr> 18.</tbody> 19.</table> 20.<div id="main-content"> 21. <div class="tab-content"> 22. <!--发运订单信息--> 23. <div id="live" class="tab-pane active"> 24. <div class='row-fluid'> 25. <div class='span12 widget'> 26. <div class='widget-content summary-list'> 27. <div class='row-fluid' > 28. <div class='span12 section '> 29. <table class='table table-bordered table-striped'> 30. <tbody id="divErrorMessage" runat="server"> 31. </tbody> 32. </table> 33. </div> 34. </div> 35. </div> 36. </div> 37. </div> 38. </div> 39. </div> 40.</div> 1. 荷兰和佛山小包打印: 2. <input type="hidden" id="hfExpressHtml"/> 3. <!-- Core scripts --> 4. <script src="http://www.orderonline.cn/js/jquery-1.7.2.js"></script> 5. <script src="assets/js/Lodop.js"></script> 6. <script type="text/javascript"> 7. $(document).ready(function () { 8. $("#btnPrint").click(function () { 9. if ($("#txtWaveNo").val() == "" && $("#txtSoNo").val() =="") { 10. alert('波次单号或SO订单号不能全为空,请任意输入一个进行打印。'); 11. } 12. else { 13. var searchwhere = $("#txtWaveNo").val() + "_" + $("#txtSoNo").val(); 14. $.ajax({ 15. type: "get", 16. url: "ExpressPrint.ashx", 17. data: "getExpressInfo=" + encodeURIComponent(searchwhere), 18. datatype: "json", 19. async: false, 20. success: function (returnData, textstatus, xmlhttprequest) { 21. LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM')); 22. LODOP.SET_SHOW_MODE("HIDE_PAPER_BOARD", 1); 23. $("#hfExpressHtml").html(returnData); 24. var html = $("#hfExpressHtml .main_all >div"); 25. // var strStyleCSS = "<!DOCTYPE html> <head>"; 26. var strStyleCSS = "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'><html xmlns=\"http://www.w3.org/1999/xhtml\"><head>"; 27. strStyleCSS += "<link href='http://www.orderonline.cn/css/A4.css' type='text/css' rel='stylesheet'></head><body>"; 28. //HTML格式用 29. // LODOP.SET_PRINT_PAGESIZE(1, "760px", "650px", "A5"); 30. var num = 0; var strFormHtml = ""; 31. for (var i = 0; i < html.length; i++) { 32. if (num % 2 == 0) { 33. LODOP.NewPage(); strFormHtml = ""; 34. strFormHtml += strStyleCSS + html[i].outerHTML; 35. } 36. else { 37. strFormHtml += strStyleCSS + html[i].outerHTML; 38. } 39. LODOP.ADD_PRINT_HTM(15, 0, 800, 650, strFormHtml + "</body></html>"); 40. // LODOP.ADD_PRINT_HTM(30, 0, 800, 650, strFormHtml + "</body></html>"); 41. num++; 42. } LODOP.PREVIEW(); strFormHtml = ""; 43. }, 44. error: function (errorinfo) { 45. alert("快递单打印失败,请重新刷新后打印。"); 46. } 47. }); 48. } 49. }) 50. $("#btnFoShanPrint").click(function () { 51. if ($("#txtWaveNo").val() == "" && $("#txtSoNo").val() == "") { 52. alert('波次单号或SO订单号不能全为空,请任意输入一个进行打印。'); 53. } 54. else { 55. 56. var searchwhere = $("#txtWaveNo").val() + "_" + $("#txtSoNo").val(); 57. $.ajax({ 58. type: "get", 59. url: "ExpressPrint.ashx", 60. data: "getExpressInfo=" + encodeURIComponent(searchwhere), 61. datatype: "json", 62. async: false, 63. success: function (returnData, textstatus, xmlhttprequest) { 64. LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM')); 65. LODOP.SET_SHOW_MODE("HIDE_PAPER_BOARD", 1); 66. $("#hfExpressHtml").html(returnData); 67. var html = $("#hfExpressHtml .main_all >div"); 68. // var strStyleCSS = "<!DOCTYPE html> <head>"; 69. var strStyleCSS = "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'><html xmlns=\"http://www.w3.org/1999/xhtml\"><head>"; 70. strStyleCSS += "<link href='http://www.orderonline.cn/css/A4.css' type='text/css' rel='stylesheet'></head><body>"; 71. //HTML格式用 72. LODOP.SET_PRINT_PAGESIZE(2, "760px", "650px", "A5"); 73. var num = 0; var strFormHtml = ""; 74. for (var i = 0; i < html.length; i++) { 75. if (num % 2 == 0) { 76. LODOP.NewPage(); strFormHtml = ""; 77. strFormHtml += strStyleCSS + html[i].outerHTML; 78. } 79. else { 80. 81. strFormHtml += strStyleCSS + html[i].outerHTML; 82. } 83. LODOP.ADD_PRINT_HTM(15, 0, 800, 650, strFormHtml + "</body></html>"); 84. // LODOP.ADD_PRINT_HTM(30, 0, 800, 650, strFormHtml + "</body></html>"); 85. num++; 86. } LODOP.PREVIEW(); strFormHtml = ""; 87. 88. }, 89. error: function (errorinfo) { 90. alert("快递单打印失败,请重新刷新后打印。"); 91. } 92. }); 93. } 94. }) 95. //清除转向页面 96. $("#txtWaveNo").val(''); $("#txtSoNo").val(''); $("#hfExpressHtml").html(''); 97. }); 98. </script> 99. 100. 比利时小包打印: 101. <script type="text/javascript"> 102. 103. $(document).ready(function () { 104. 105. $("#btnPrint").click(function () { 106. if ($("#txtWaveNo").val() == "" && $("#txtSoNo").val() == "") { 107. alert('波次单号或SO订单号不能全为空,请任意输入一个进行打印。'); 108. } 109. else { 110. 111. var searchwhere = $("#txtWaveNo").val() + "_" + $("#txtSoNo").val(); 112. $.ajax({ 113. type: "get", 114. url: "ExpressPrint.ashx", 115. data: "getBlsExpressInfo=" + encodeURIComponent(searchwhere), 116. datatype: "json", 117. async: false, 118. success: function (returnData, textstatus, xmlhttprequest) { 119. 120. LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM')); 121. LODOP.SET_SHOW_MODE("HIDE_PAPER_BOARD", 1); 122. 123. $("#hfExpressHtml").html(returnData); 124. var html = $("#hfExpressHtml .main_all >div"); 125. // var strStyleCSS = "<!DOCTYPE html> <head>"; 126. var strStyleCSS = "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'><html xmlns=\"http://www.w3.org/1999/xhtml\"><head>"; 127. strStyleCSS += "<link href='http://www.orderonline.cn/css/A4.css' type='text/css' rel='stylesheet'></head><body>"; 128. 129. //HTML格式用 130. // LODOP.SET_PRINT_PAGESIZE(1, "760px", "650px", "A5"); 131. 132. var num = 0; var strFormHtml = ""; 133. for (var i = 0; i < html.length; i++) { 134. if (num % 2 == 0) { 135. LODOP.NewPage(); strFormHtml = ""; 136. strFormHtml += strStyleCSS + html[i].outerHTML; 137. } 138. else { 139. 140. strFormHtml += strStyleCSS + html[i].outerHTML; 141. } 142. LODOP.ADD_PRINT_HTM(15, 0, 800, 650, strFormHtml + "</body></html>"); 143. // LODOP.ADD_PRINT_HTM(30, 0, 800, 650, strFormHtml + "</body></html>"); 144. num++; 145. } LODOP.PREVIEW(); strFormHtml = ""; 146. 147. }, 148. error: function (errorinfo) { 149. alert("快递单打印失败,请重新刷新后打印。"); 150. } 151. }); 152. } 153. //清除转向页面 154. $("#txtWaveNo").val(''); $("#txtSoNo").val(''); $("#hfExpressHtml").html(''); 155. }) 156. }); 157. </script> 1. public class ExpressPrint : IHttpHandler 2. { 3. public void ProcessRequest(HttpContext context) 4. { 5. context.Response.ContentType = "text/plain"; 6. if (!string.IsNullOrEmpty(context.Request["getExpressInfo"])) 7. { 8. string[] strParm = context.Request["getExpressInfo"].Split('_'); 9. StringBuilder sbExpressHtml = new StringBuilder(); 10. var returnHtml = string.Empty; 11. using (ExpressPrintDataContext db = new ExpressPrintDataContext()) 12. { 13. var getExpressList = from p in db.DOC_Wave_Details 14. join pp in db.DOC_Order_Header 15. on p.OrderNo equals pp.OrderNo 16. where p.WaveNo.Contains(strParm[0]) && p.OrderNo.Contains(strParm[1]) 17. select new { p.WaveNo, p.OrderNo, pp.SOReference3 }; 18. var expressNo = string.Empty; 19. returnHtml = @"<link href=""http://www.orderonline.cn/A4.css"" rel=""stylesheet"" type=""text/css"" />"; 20. returnHtml += "<div class=\"wapper\" id=\"A4_print\"><div class=\"main_all\">"; 21. foreach (var item in getExpressList) 22. { 23. // expressNo += item.SOReference3 + ','; 24. string strURL = "http://www.orderonline.cn/printNo.action?print=A4&remak=1&prType=W&hawbNos=" + item.SOReference3; 25. 26. HttpWebRequest request = (HttpWebRequest)HttpWebRequest.create(strURL); 27. request.Method = "GET"; 28. request.ContentType = "text/html;charset=UTF-8"; 29. HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 30. Stream myResponseStream = response.GetResponseStream(); 31. StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); 32. string retString = myStreamReader.ReadToEnd(); 33. 34. myStreamReader.Close(); 35. myResponseStream.Close(); 36. returnHtml += Regex.Match(retString, @"(?is)<div class=""main p_r"">((?<o><div[^<>]*>)|(?<-o></div>)|(?!</?div>).)+(?(o)(?!))</div>").Groups[0].Value.Trim(); 37. 38. Regex reg = new Regex("<td colspan=\"2\" class=\"bar-con tx-ce \">([\\s\\S]*?)<\\/td>", RegexOptions.IgnoreCase); 39. MatchCollection mac = reg.Matches(returnHtml); 40. var code="barbecue?fmt=png&height=40&type=code128&data="+item.SOReference3; 41. foreach (Match m in mac) 42. { 43. string f1 = m.Groups[1].Value.Replace("/[\r\n]/g", ""); 44.                              returnHtml = returnHtml.Replace(f1, "<div style=\"float:left\"><img  style=\"width:260px;height:40px;\"  src="+code+"> </div>
 45.                          }     46.                      } 47.                      Regex regex = new Regex("/images", RegexOptions.IgnoreCase);  48.                      returnHtml = regex.Replace(returnHtml, "http://www.orderonline.cn/images"); 49.                      Regex regex1 = new Regex("barbecue", RegexOptions.IgnoreCase); 50.                      returnHtml = regex1.Replace(returnHtml, "http://www.orderonline.cn/barbecue"); 51.                      sbExpressHtml.Append(returnHtml+"</div></div>"); 52.                  } 53.                  context.Response.Write(sbExpressHtml.ToString()); 54.            } 55.       if (!string.IsNullOrEmpty(context.Request["getBlsExpressInfo"])) 56.       { 57.           string[] strParm = context.Request["getBlsExpressInfo"].Split('_'); 58.           StringBuilder sbExpressHtml = new StringBuilder(); 59.           var returnHtml = string.Empty; 60.           using (ExpressPrintDataContext db = new ExpressPrintDataContext()) 61.           { 62.              //var getExpressList = from p in db.DOC_Wave_Details 63.              //                     join pp in db.DOC_Order_Header 64.              //                     on p.OrderNo equals pp.OrderNo 65.              //                     where p.WaveNo.Contains(strParm[0]) && p.OrderNo.Contains(strParm[1]) 66.              //                     select new { p.WaveNo, p.OrderNo, pp.SOReference3 }; 67.              //数据放入ticket 68.              var apiToken = Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Format("{0}:{1}", "mega", "bpost")));  69.              string url = "http://42.121.252.25/api/lvsparcels?productBarcode=BLVS1592170000004048";  70.              try 71.              { 72.                  //配置请求header      73.                  HttpWebRequest request = (HttpWebRequest)HttpWebRequest.create(url); 74.                  request.Method = "GET"; 75.                  request.ContentType = "text/json; charset=utf-8"; 76.                  request.Headers.Add(HttpRequestHeader.Authorization, "basic " + apiToken); 77.                  HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 78.                  Stream myResponseStream = response.GetResponseStream(); 79.                  StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); 80.                  string retString = myStreamReader.ReadToEnd(); 81.                  LvsParcelJson getExpressInfo = (LvsParcelJson)JsonConvert.DeserializeObject<LvsParcelJson>(retString); 82.                  myStreamReader.Close(); 83.                  myResponseStream.Close(); 84.              } 85.              catch (Exception e) 86.              { 87.                  context.Response.Write(e.Message); 88.              } 89.           } 90.       } 91.       context.Response.End(); 92.    } 93.     public class LvsParcelJson 94.    { 95.       public int Id { get; set; } 96.       public string OrderNumber { get; set; } 97.       public string ProductBarcode { get; set; } 98.       public string RecipientName { get; set; } 99.       public string RecipientStreet { get; set; } 100.           public string RecipientHouseNumber { get; set; } 101.           public string RecipientBusnumber { get; set; } 102.           public string RecipientZipCode { get; set; } 103.           public string RecipientCity { get; set; } 104.           public string RecipientState { get; set; } 105.           public string RecipientCountry { get; set; } 106.           public string PhoneNumber { get; set; } 107.           public string SenderName { get; set; } 108.           public DateTime createTime { get; set; } 109.           public string SenderAddress { get; set; } 110.           public  List<Customers> Customs { get; set; } 111.        } 112.     113.        public class Customers 114.        { 115.           public string Sku { get; set; } 116.           public string ChineseContentDescription { get; set; } 117.           public string ItemContent { get; set; } 118.           public int ItemCount { get; set; } 119.            public decimal Value { get; set; } 120.           public string Currency { get; set; } 121.           public decimal Weight { get; set; } 122.           public string SkuInInvoice { get; set; } 123.        } 124.        public bool IsReusable 125.           { 126.               get 127.               { 128.                   return false; 129.               } 130.           } 131.       } | 关键字查询 相关文章 正在查询... |