private TrackResult FedEx_Track(CarrierAPI api, string trackingNumber) { TrackResult result = new TrackResult(); FedEx_API FedEx = new FedEx_API(api); TrackReply FedEx_Result = FedEx.Tracking(trackingNumber); if (FedEx_Result.HighestSeverity != NotificationSeverityType.SUCCESS) { throw new Exception(string.Join(";", FedEx_Result.Notifications.Select(n => n.Message).ToArray())); } TrackDetail detail = FedEx_Result.CompletedTrackDetails[0].TrackDetails[0]; if (detail.Events != null) { List <TrackEvent> FedEx_EventList = detail.Events.ToList(); if (FedEx_EventList.Any(e => e.EventType == "PU")) { result.PickupDate = FedEx_EventList.First(e => e.EventType == "PU").Timestamp.ToUniversalTime(); result.DeliveryStatus = (int)OrderService.DeliveryStatusType.Intransit; } result.DeliveryNote = FedEx_EventList.Select(e => e.Timestamp.ToString() + " " + e.EventDescription).First(); if (FedEx_EventList.Any(e => e.EventType == "DL")) { result.DeliveryDate = FedEx_EventList.First(e => e.EventType == "DL").Timestamp.ToUniversalTime(); result.DeliveryStatus = (int)OrderService.DeliveryStatusType.Delivered; } } return(result); }
private void FedEx_Test(string BoxID) { var boxList = db.Box.Where(b => b.IsEnable && b.MainBox.Equals(BoxID)).ToList(); ShippingMethod method = db.ShippingMethod.Find(boxList.First().FirstMileMethod); DirectLine directLine = db.DirectLine.Find(boxList.First().DirectLine); CarrierAPI api = method.Carriers.CarrierAPI; FedEx_API FedEx = new FedEx_API(api); var result = FedEx.CreateBox(boxList, method, directLine); if (result.HighestSeverity.Equals(FedExShipService.NotificationSeverityType.SUCCESS)) { var Data = result.CompletedShipmentDetail.CompletedPackageDetails.First(); string TrackingNumber = Data.TrackingIds.First().TrackingNumber; //System.IO.File.WriteAllBytes(@"G:\Downloads\FedEx_Test3.pdf", Crop(Data.Label.Parts.First().Image, 29f, 324f, 319f, 762f)); //System.IO.File.WriteAllBytes(@"G:\Downloads\FedEx_Test4.pdf", Data.Label.Parts.First().Image); var zpl = Data.Label.Parts.First().Image; string str = Encoding.ASCII.GetString(zpl); var request = (HttpWebRequest)WebRequest.Create("http://api.labelary.com/v1/printers/8dpmm/labels/4x6.75/"); request.Method = "POST"; request.Accept = "application/pdf"; // omit this line to get PNG images back request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = zpl.Length; var requestStream = request.GetRequestStream(); requestStream.Write(zpl, 0, zpl.Length); requestStream.Close(); try { var response = (HttpWebResponse)request.GetResponse(); var responseStream = response.GetResponseStream(); var fileStream = System.IO.File.Create(@"G:\Downloads\FedEx_Test5.pdf"); // change file name for PNG images responseStream.CopyTo(fileStream); responseStream.Close(); fileStream.Close(); } catch (WebException e) { Console.WriteLine("Error: {0}", e.Status); } } iTextSharp.text.pdf.PdfReader.unethicalreading = true; // Reads the PDF document using (iTextSharp.text.pdf.PdfReader pdfReader = new iTextSharp.text.pdf.PdfReader(@"G:\Downloads\FedEx_Test5.pdf")) { using (MemoryStream ms = new MemoryStream()) { // Create a new document //using (iTextSharp.text.Document doc = // new iTextSharp.text.Document(new iTextSharp.text.Rectangle(288f,432f))) using (iTextSharp.text.Document doc = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4)) { // Make a copy of the document iTextSharp.text.pdf.PdfSmartCopy smartCopy = new iTextSharp.text.pdf.PdfSmartCopy(doc, ms) { PdfVersion = iTextSharp.text.pdf.PdfWriter.VERSION_1_7 }; smartCopy.CloseStream = false; // Open the newly created document doc.Open(); // Loop through all pages of the source document for (int i = pdfReader.NumberOfPages; i >= 1; i--) { doc.NewPage();// net necessary line // Get a page var page = pdfReader.GetPageN(i); // Copy the content and insert into the new document var copiedPage = smartCopy.GetImportedPage(pdfReader, i); smartCopy.AddPage(copiedPage); if (i.Equals(1)) { doc.NewPage(); smartCopy.AddPage(copiedPage); } } smartCopy.FreeReader(pdfReader); smartCopy.Close(); ms.Position = 0; System.IO.File.WriteAllBytes(@"G:\Downloads\FedEx_Test6.pdf", ms.GetBuffer()); // Close the output document doc.Close(); } } } }