public static PdfPacketInfo GetPdfPacketInfo(string filename) { if (!File.Exists(filename)) { return(null); } Egode.PdfParser parser = new Egode.PdfParser(filename); string s = parser.GetText(); parser.Close(); //Trace.WriteLine(s); // DHL超市. Regex r = new Regex(@"Ref. No.:\s\d{12}\s(.*)\sEntgelt Bezahlt\sPort Payé"); Match m = r.Match(s); if (m.Success) { string packetInfo = m.Groups[1].Value; // format: FamilyName GivenName123456 4-16,5 r = new Regex(@"(\w* \D*)(\d{6})\s*(\d*-\d*),(\d*)"); m = r.Match(packetInfo); if (m.Success) { return(new PdfPacketInfo(PacketTypes.Supermarket, m.Groups[1].Value, "297808" + m.Groups[2].Value, int.Parse(m.Groups[4].Value))); } } // 彩虹. r = new Regex(@"DEUTSCHLAND\s*To\s(\w* \w*)\s"); m = r.Match(s); if (m.Success) // { //foreach (Group g in m.Groups) // Trace.WriteLine("Group:" + g.Value); string recipientName = m.Groups[1].Value; r = new Regex(@"Shipment No.*: (\d{12})\s(\d*,\d*)\s*kg"); m = r.Match(s); if (m.Success) { string shipmentNumber = m.Groups[1].Value; int weight = (int)float.Parse(m.Groups[2].Value.Replace(",", ".")); return(new PdfPacketInfo(PacketTypes.Rainbow, recipientName, shipmentNumber, weight)); } } return(null); }
public static PdfPacketInfo GetPdfPacketInfo(string filename) { if (!File.Exists(filename)) { return(null); } try { Egode.PdfParser parser = new Egode.PdfParser(filename); string s = parser.GetText(); parser.Close(); //Trace.WriteLine(s); // DHL超市-postNL. // 收件人中文地址单\n收件人:程燕(cheng yan)\n收件地址:江苏省苏州市工业园区金鸡湖大\n道1355号二期e301\n邮编:215000\n收件人电话:+8615312197535\n包裹重量:10.0KG\n包裹唯一号:DE141107P0010910\nCHN Regex r = new Regex("收件人中文地址单"); Match m = r.Match(s); if (m.Success) { string recipientName = string.Empty, recipientPhone = string.Empty, shipmentNumber = string.Empty; float weight; r = new Regex(@"收件人:(\w*)"); m = r.Match(s); if (m.Success) { recipientName = m.Groups[1].Value; r = new Regex(@"收件人电话:\+*(\d+)"); m = r.Match(s); if (m.Success) { recipientPhone = m.Groups[1].Value; r = new Regex(@"包裹唯一号:(.*)\s"); m = r.Match(s); if (m.Success) { shipmentNumber = m.Groups[1].Value; r = new Regex(@"包裹唯一号:(.*)\s"); m = r.Match(s); if (m.Success) { shipmentNumber = m.Groups[1].Value; r = new Regex(@"包裹重量:(.*)KG\s"); m = r.Match(s); if (m.Success) { weight = float.Parse(m.Groups[1].Value); return(new PdfPacketInfo(PacketTypes.Time24_PostNL, recipientName, recipientPhone, shipmentNumber, weight, string.Empty, string.Empty)); } } } } } } // DHL超市. r = new Regex(@"Ref. No.:\s\d{12}\s(.*)\sEntgelt Bezahlt\sPort Payé"); m = r.Match(s); if (m.Success) { string packetInfo = m.Groups[1].Value; // format: FamilyName GivenName123456 4-16,5 r = new Regex(@"(\w* \D*)(\d{6})\s*(\d*-\d*),(\d*)"); m = r.Match(packetInfo); if (m.Success) { return(new PdfPacketInfo(PacketTypes.Supermarket, m.Groups[1].Value, string.Empty, "297808" + m.Groups[2].Value, float.Parse(m.Groups[4].Value), string.Empty, string.Empty)); } } // 彩虹. r = new Regex(@"DEUTSCHLAND\s*To\s(\w* \w*)\s"); m = r.Match(s); if (m.Success) // { //foreach (Group g in m.Groups) // Trace.WriteLine("Group:" + g.Value); string recipientName = m.Groups[1].Value; r = new Regex(@"Shipment No.*: (\d{12})\s(\d*,\d*)\s*kg"); m = r.Match(s); if (m.Success) { string shipmentNumber = m.Groups[1].Value; float weight = float.Parse(m.Groups[2].Value.Replace(",", ".")); string receiverPhone = string.Empty; r = new Regex("Receiver phone:\n(.*)\n"); m = r.Match(s); if (m.Success) { receiverPhone = m.Groups[1].Value; } return(new PdfPacketInfo(PacketTypes.Rainbow, recipientName, receiverPhone, shipmentNumber, weight, string.Empty, string.Empty)); } } // DHL Express. r = new Regex(@"WAYBILL (\d{2} \d{4} \d{4})"); m = r.Match(s); if (m.Success) { string shipmentNumber = m.Groups[1].Value; shipmentNumber = shipmentNumber.Replace(" ", string.Empty); string recipientName = string.Empty; r = new Regex(@"To\s(.*)\s"); m = r.Match(s); if (m.Success) { recipientName = m.Groups[1].Value; } string receiverPhone = string.Empty; r = new Regex(@"Contact:\s.*\s(\d*)\s"); m = r.Match(s); if (m.Success) { receiverPhone = m.Groups[1].Value; } float weight = 0; r = new Regex(@"Total Weight: (\d*) kg"); m = r.Match(s); if (m.Success) { weight = float.Parse(m.Groups[1].Value); } return(new PdfPacketInfo(PacketTypes.Express, recipientName, receiverPhone, shipmentNumber, weight, string.Empty, string.Empty)); } } catch (Exception ex) { Trace.WriteLine(ex); } return(null); }