Ejemplo n.º 1
0
        private void AddScanForm(Document doc, PdfWriter writer, string scanFormImage)
        {
            var labelInfo = new PrintLabelInfo()
            {
                Image = scanFormImage,
            };

            if (labelInfo.IsPdf)
            {
                AddPdfLabel(doc, writer, labelInfo);
            }
            else
            {
                doc.NewPage();

                var scanFormImageObj = iTextSharp.text.Image.GetInstance(scanFormImage);
                var width            = doc.PageSize.Width - 2 * ScanFormPaddingX;
                var height           = doc.PageSize.Height - 2 * ScanFormPaddingY;

                scanFormImageObj.ScaleToFit(width, height);
                scanFormImageObj.CompressionLevel = PdfStream.BEST_COMPRESSION;

                var dy = (doc.PageSize.Height - scanFormImageObj.ScaledHeight) / 2;
                var dx = (doc.PageSize.Width - scanFormImageObj.ScaledWidth) / 2;

                scanFormImageObj.SetAbsolutePosition(dx, dy);

                doc.Add(scanFormImageObj);
            }
        }
Ejemplo n.º 2
0
        private void AddPageWithFullLabel(Document doc, PdfWriter writer, PrintLabelInfo label)
        {
            doc.NewPage();

            var labelSize = new PointF(0, 0);

            if (String.IsNullOrEmpty(label.Image) || !File.Exists(label.Image))
            {
                labelSize = AddLabelDummyText(doc, writer, label, 0);
                PrintAdditionalLabelInfo(doc, writer, label, labelSize, 0);
            }
            else
            {
                if (label.ShippingMethodId == ShippingUtils.AmazonDhlExpressMXShippingMethodId)
                //NOTE: Temporary Print twice //TODO: create pdf with 2 labels
                {
                    labelSize = AddLabelImage(doc, writer, label.Image, PrintLabelSizeType.HalfPage, label, 0);
                    //PrintAdditionalLabelInfo(doc, writer, label, labelSize, 0);
                    labelSize = AddLabelImage(doc, writer, label.Image, PrintLabelSizeType.HalfPage, label, 1);
                    PrintAdditionalLabelInfo(doc, writer, label, labelSize, 1);
                }
                else
                {
                    labelSize = AddLabelImage(doc, writer, label.Image, label.LabelSize, label, 0);
                    PrintAdditionalLabelInfo(doc, writer, label, labelSize, 0);
                }
            }
        }
Ejemplo n.º 3
0
 private void PrintAdditionalLabelInfo(Document doc,
                                       PdfWriter writer,
                                       PrintLabelInfo label,
                                       PointF labelSize,
                                       int number)
 {
 }
Ejemplo n.º 4
0
        private void AddScanForm(StreamWriter writer, string scanFormImage)
        {
            var labelInfo = new PrintLabelInfo()
            {
                Image = scanFormImage,
            };

            AddImage(writer, scanFormImage);
        }
Ejemplo n.º 5
0
        private void AddPageWithTwoHalfLabels(Document doc, PdfWriter writer, PrintLabelInfo label1, PrintLabelInfo label2)
        {
            doc.NewPage();

            AddHalfPageLabel(doc, writer, label1, 0);

            if (label2 != null)
            {
                AddHalfPageLabel(doc, writer, label2, 1);
            }
        }
Ejemplo n.º 6
0
 private void AddImageLabel(StreamWriter writer, PrintLabelInfo label)
 {
     if (label.IsZpl)
     {
         AddZpl(writer, label.Image);
     }
     else
     {
         AddImage(writer, label.Image);
     }
 }
Ejemplo n.º 7
0
        private void AddPdfLabel(Document doc, PdfWriter writer, PrintLabelInfo label)
        {
            //using //if enable it main doc also closing
            var pdf = new PdfReader(label.Image);
            {
                if (label.ShippingMethodId == ShippingUtils.AmazonFedExHomeDeliveryShippingMethodId ||
                    label.ShippingMethodId == ShippingUtils.AmazonFedExHomeDeliveryShippingMethodId ||
                    label.ShippingMethodId == ShippingUtils.AmazonFedEx2DayOneRateEnvelopeShippingMethodId ||
                    label.ShippingMethodId == ShippingUtils.AmazonFedEx2DayOneRatePakShippingMethodId)
                {
                    doc.SetPageSize(pdf.GetPageSizeWithRotation(1));
                    doc.NewPage();
                    var pg       = writer.GetImportedPage(pdf, 1);
                    int rotation = 270;// pdf.GetPageRotation(1);
                    if (rotation == 90)
                    {
                        writer.DirectContent.AddTemplate(pg, 0, -1f, 1f, 0, 0, pdf.GetPageSizeWithRotation(1).Height);
                    }
                    else if (rotation == 270)
                    {
                        writer.DirectContent.AddTemplate(pg, 0, 1f, -1f, 0, pdf.GetPageSizeWithRotation(1).Height + 50, pdf.GetPageSizeWithRotation(1).Width / 2 + 110);
                    }
                    else
                    {
                        writer.DirectContent.AddTemplate(pg, 1f, 0, 0, 1f, 0, 0);
                    }

                    PrintAdditionalLabelInfo(doc,
                                             writer,
                                             label,
                                             new PointF(pdf.GetPageSizeWithRotation(1).Width - 150, pdf.GetPageSizeWithRotation(1).Height / 2 - 100),
                                             0);
                }
                else
                {
                    for (int page = 0; page < pdf.NumberOfPages; page++)
                    {
                        doc.SetPageSize(pdf.GetPageSizeWithRotation(page + 1));
                        doc.NewPage();
                        var pg       = writer.GetImportedPage(pdf, page + 1);
                        int rotation = pdf.GetPageRotation(page + 1);
                        if (rotation == 90 || rotation == 270)
                        {
                            writer.DirectContent.AddTemplate(pg, 0, -1f, 1f, 0, 0, pdf.GetPageSizeWithRotation(page + 1).Height);
                        }
                        else
                        {
                            writer.DirectContent.AddTemplate(pg, 1f, 0, 0, 1f, 0, 0);
                        }
                    }
                }
            }
        }
Ejemplo n.º 8
0
        private PointF AddLabelImage(Document doc,
                                     PdfWriter writer,
                                     string image,
                                     PrintLabelSizeType labelSize,
                                     PrintLabelInfo labelInfo,
                                     int number)
        {
            var imageObj = Image.GetInstance(image);

            imageObj.CompressionLevel = PdfStream.BEST_COMPRESSION;

            if (imageObj.Height < imageObj.Width)
            {
                if (labelInfo.RotationAngle.HasValue)
                {
                    imageObj.Rotation = (float)(labelInfo.RotationAngle.Value / (float)360 * (2 * Math.PI));
                }
                //if (labelInfo.ShippingMethodId == ShippingUtils.IBCCEPePocketMethodId)
                //    imageObj.Rotation = -(float) Math.PI/2;
                else
                {
                    imageObj.Rotation = -(float)Math.PI / 2;
                }
                imageObj.Rotate();
            }

            //image1.SetImageQuality(80); //before 50%

            var width  = doc.PageSize.Width - 2 * LabelPaddingX;
            var height = doc.PageSize.Height / 2 - 2 * LabelPaddingY;

            if (labelSize == PrintLabelSizeType.FullPage)
            {
                height = doc.PageSize.Height - 2 * LabelPaddingY;
            }

            imageObj.ScaleToFit(width, height);

            PointF startPoint;
            var    dy = (doc.PageSize.Height - imageObj.ScaledHeight) / 2;
            var    dx = (doc.PageSize.Width - imageObj.ScaledWidth) / 2;

            startPoint = new PointF(dx, dy);

            imageObj.SetAbsolutePosition(startPoint.X, startPoint.Y);

            doc.Add(imageObj);

            return(new PointF(imageObj.ScaledWidth, imageObj.ScaledHeight));
        }
Ejemplo n.º 9
0
        private void AddPageWithFullLabel(Document doc, PdfWriter writer, PrintLabelInfo label)
        {
            doc.NewPage();

            var labelSize = new PointF(0, 0);

            if (String.IsNullOrEmpty(label.Image) || !File.Exists(label.Image))
            {
            }
            else
            {
                labelSize = AddLabelImage(doc, writer, label.Image, label.LabelSize, label, 0);
                PrintAdditionalLabelInfo(doc, writer, label, labelSize, 0);
            }
        }
Ejemplo n.º 10
0
        private void AddHalfPageLabel(Document doc, PdfWriter writer, PrintLabelInfo label, int number)
        {
            var labelSize = new PointF(0, 0);

            if (String.IsNullOrEmpty(label.Image) || !File.Exists(label.Image))
            {
                labelSize = AddLabelDummyText(doc, writer, label, number);
            }
            else
            {
                if (label.IsPdf) //NOTE: Temporary Amazon return stamps flat priority in pdf format!!!
                {
                    if (label.SpecialType == LabelSpecialType.MailPickList)
                    {
                        labelSize = AddMailPickListPdf(doc, writer, label, number);
                    }
                    else
                    {
                        if (label.ShippingMethodId == ShippingUtils.AmazonFedExHomeDeliveryShippingMethodId ||
                            label.ShippingMethodId == ShippingUtils.AmazonFedExHomeDeliveryShippingMethodId ||
                            label.ShippingMethodId == ShippingUtils.AmazonFedEx2DayOneRateEnvelopeShippingMethodId ||
                            label.ShippingMethodId == ShippingUtils.AmazonFedEx2DayOneRatePakShippingMethodId)
                        {
                            labelSize = AddFedexPdf(doc, writer, label, number);
                        }
                        else
                        {
                            labelSize = AddStampsPdf(doc, writer, label, number);
                        }
                    }
                }
                else
                {
                    labelSize = AddLabelImage(doc, writer, label.Image, label.LabelSize, label, number);
                }
            }

            if (label.SpecialType != LabelSpecialType.MailPickList)
            {
                PrintAdditionalLabelInfo(doc, writer, label, labelSize, number);
            }
        }
Ejemplo n.º 11
0
        private PointF AddFedexPdf(Document doc, PdfWriter writer, PrintLabelInfo label, int number)
        {
            var pdf = new PdfReader(label.Image);

            float dy   = 0;
            var   page = 1;

            dy = pdf.GetPageSizeWithRotation(page).Width / 2 + 110;
            if (number == 1)
            {
                dy = pdf.GetPageSizeWithRotation(page).Width / 2 + 110 - pdf.GetPageSizeWithRotation(page).Height / 2;
            }

            var pg = writer.GetImportedPage(pdf, 1);

            writer.DirectContent.AddTemplate(pg, 0, 1f, -1f, 0, pdf.GetPageSizeWithRotation(1).Height + 50, dy);

            var width  = doc.PageSize.Width - 2 * LabelPaddingX;
            var height = doc.PageSize.Height / 2 - 2 * LabelPaddingY;

            return(new PointF(width, height));
        }
Ejemplo n.º 12
0
        private static PointF AddMailPickListPdf(Document doc, PdfWriter writer, PrintLabelInfo label, int number)
        {
            var pdf = new PdfReader(label.Image);

            float dy = 0;

            var page = 1;

            var pg = writer.GetImportedPage(pdf, page);

            dy = pdf.GetPageSizeWithRotation(page).Width / 2 + 120;
            if (number == 1)
            {
                dy = pdf.GetPageSizeWithRotation(page).Width / 2 + 140 - pdf.GetPageSizeWithRotation(page).Height / 2;
            }

            //http://stackoverflow.com/questions/3579058/rotating-pdf-in-c-sharp-using-itextsharp
            writer.DirectContent.AddTemplate(pg, 0, 1.0f, -1.0f, 0, pdf.GetPageSizeWithRotation(page).Height, dy); //270

            var width  = doc.PageSize.Width - 2 * LabelPaddingX;
            var height = doc.PageSize.Height / 2 - 2 * LabelPaddingY;

            return(new PointF(width, height));
        }
Ejemplo n.º 13
0
        private void PrintAdditionalLabelInfo(Document doc,
                                              PdfWriter writer,
                                              PrintLabelInfo label,
                                              PointF labelSize,
                                              int number)
        {
            //Print OrderId and Name
            try
            {
                var validPersonName = String.Join("", label.PersonName.Where(ch => ValidateChar(ch)).ToList());

                Color?color           = null;
                bool  isDashed        = false;
                var   packageTypeName = label.PackageNameOnLabel;

                switch (label.ServiceType)
                {
                case ShippingTypeCode.IStandard:
                    if (label.PackageType == PackageTypeCode.Regular)
                    {
                        color = Color.Yellow;
                    }
                    break;

                case ShippingTypeCode.Priority:
                case ShippingTypeCode.IPriority:
                    if (label.PackageType == PackageTypeCode.Flat)
                    {
                        color = Color.Red;
                    }
                    else
                    {
                        color = Color.YellowGreen;
                    }
                    break;

                case ShippingTypeCode.PriorityExpress:
                case ShippingTypeCode.IPriorityExpress:
                    color = Color.Blue;
                    break;

                case ShippingTypeCode.SameDay:
                    color = Color.DarkBlue;
                    break;
                }

                if (label.ShippingMethodId == ShippingUtils.AmazonRegionalRateBoxAMethodId ||
                    label.ShippingMethodId == ShippingUtils.RegionalRateBoxAMethodId)
                {
                    color = Color.Orange;
                }
                if (label.ShippingMethodId == ShippingUtils.FedexOneRate2DayEnvelope ||
                    label.ShippingMethodId == ShippingUtils.AmazonFedEx2DayOneRateEnvelopeShippingMethodId ||
                    label.ShippingMethodId == ShippingUtils.FedexPriorityOvernightEnvelope)
                {
                    color = Color.Violet;
                }
                if (label.ShippingMethodId == ShippingUtils.FedexOneRate2DayPak ||
                    label.ShippingMethodId == ShippingUtils.AmazonFedEx2DayOneRatePakShippingMethodId ||
                    label.ShippingMethodId == ShippingUtils.FedexPriorityOvernightPak)
                {
                    color = Color.FromArgb(155, 135, 12);
                }
                if (label.ShippingMethodId == ShippingUtils.AmazonFedEx2DayShppingMethodId ||
                    label.ShippingMethodId == ShippingUtils.AmazonFedEx2DayAMShppingMethodId ||
                    label.ShippingMethodId == ShippingUtils.Fedex2DayAMShppingMethodId ||
                    label.ShippingMethodId == ShippingUtils.Fedex2DayShppingMethodId)
                {
                    color    = Color.FromArgb(155, 135, 12);
                    isDashed = true;
                }

                PointF basePoint;
                float  lineHeight = labelSize.Y;// doc.PageSize.Height - 2*LabelPaddingY;
                if (label.LabelSize == PrintLabelSizeType.FullPage)
                {
                    basePoint = new PointF((doc.PageSize.Width - labelSize.X) / 2,
                                           (doc.PageSize.Height - labelSize.Y) / 2);
                    //lineHeight = doc.PageSize.Height - 2*LabelPaddingY;
                }
                else
                {
                    //lineHeight = doc.PageSize.Height/2 - 2*LabelPaddingY;

                    if (number == 0)
                    {
                        basePoint = new PointF((doc.PageSize.Width - labelSize.X) / 2,
                                               (doc.PageSize.Height / 2 - labelSize.Y) / 2 + doc.PageSize.Height / 2);
                    }
                    else
                    {
                        basePoint = new PointF((doc.PageSize.Width - labelSize.X) / 2,
                                               (doc.PageSize.Height / 2 - labelSize.Y) / 2);
                    }
                }

                DrawText(writer,
                         "B" + label.BatchId + " #" + label.Number.ToString() + " - " + label.OrderId,
                         FontSize,
                         TransparentColor,
                         LabelPaddingX / 2 + 13,
                         basePoint.Y,
                         true);

                DrawText(writer,
                         validPersonName,
                         FontSize,
                         TransparentColor,
                         LabelPaddingX / 2 + 1,
                         basePoint.Y,
                         true);

                if (!String.IsNullOrEmpty(packageTypeName))
                {
                    DrawText(writer,
                             packageTypeName,
                             FontSize,
                             TextColor,
                             LabelPaddingX / 2 - 13,
                             basePoint.Y,
                             true);
                }

                DrawText(writer,
                         label.Notes,
                         FontSize,
                         TextColor,
                         basePoint.X + labelSize.X + 20,
                         basePoint.Y,
                         true);

                if (label.ShippingMethodId != ShippingUtils.AmazonDhlExpressMXShippingMethodId)
                //NOTE: Exclude draw line for DHL MX
                {
                    if (color != null)
                    {
                        DrawLine(writer,
                                 new PointF(LabelPaddingX / 2 + 20, basePoint.Y),
                                 new PointF(LabelPaddingX / 2 + 20, basePoint.Y + lineHeight),
                                 new BaseColor(color.Value.R, color.Value.G, color.Value.B),
                                 isDashed);
                    }
                }
            }
            catch (Exception ex)
            {
                _log.Info("Pdf draw text error (text: " + label.OrderId + " - " + label.PersonName + ")", ex);
            }
        }
Ejemplo n.º 14
0
        private PointF AddLabelDummyText(Document doc,
                                         PdfWriter writer,
                                         PrintLabelInfo label,
                                         int number)
        {
            //content.SaveGraphicsState();
            ////content.TranslateScaleRotate(8.5 / 2, 11 / (double)2, 1.0, Math.PI / 2);
            try
            {
                var validPersonName = String.Join("", label.PersonName.Where(ch => ValidateChar(ch)).ToList());

                var message = String.Format("Label B{0}#{1} has purchase error", label.BatchId, label.Number);
                if (label.PrintResult == LabelPrintStatus.AlreadyMailed)
                {
                    message = String.Format("Label B{0}#{1}. This order was previously processed and mailed", label.BatchId, label.Number);
                }
                if (label.PrintResult == LabelPrintStatus.OnHold)
                {
                    message = String.Format("Label B{0}#{1}. This order was on hold", label.BatchId, label.Number);
                }


                PointF basePoint = new PointF(0, 0);
                if (label.LabelSize == PrintLabelSizeType.HalfPage)
                {
                    if (number == 0)
                    {
                        basePoint = new PointF(doc.PageSize.Width / 2, doc.PageSize.Height * 3 / (float)4);
                    }
                    else
                    {
                        basePoint = new PointF(doc.PageSize.Width / 2, doc.PageSize.Height * 1 / (float)4);
                    }
                }
                else
                {
                    basePoint = new PointF(doc.PageSize.Width / 2, doc.PageSize.Height * 1 / (float)2);
                }

                DrawText(writer,
                         message,
                         BigNormalFontSize,
                         TextColor,
                         basePoint.X - 120,
                         basePoint.Y + 50,
                         false);

                DrawText(writer,
                         label.OrderId,
                         BigFontSize,
                         TextColor,
                         basePoint.X - 120,
                         basePoint.Y,
                         false);

                DrawText(writer,
                         validPersonName,
                         BigFontSize,
                         TextColor,
                         basePoint.X - 120,
                         basePoint.Y - 50,
                         false);
            }
            catch (Exception ex)
            {
                _log.Info("Pdf draw text error (text: " + label.OrderId + " - " + label.PersonName + ")", ex);
            }
            return(new PointF(doc.PageSize.Width - 2 * LabelPaddingX,
                              doc.PageSize.Height / 2 - 2 * LabelPaddingY));
        }
Ejemplo n.º 15
0
        /// <summary>
        /// 조회, 저장등의 DB, TRAN 시 Control Enable/Disable
        /// </summary>
        void SetControlDisable(bool bDisable)
        {
            _bDisable = bDisable;

            if (this.InvokeRequired)
            {
                this.BeginInvoke((MethodInvoker) delegate()
                {
                    foreach (var item in this.Controls)
                    {
                        if (item.GetType().Name.ToString().ToLower() == "keypad")
                        {
                            WSWD.WmallPos.POS.FX.Win.UserControls.KeyPad key = (WSWD.WmallPos.POS.FX.Win.UserControls.KeyPad)item;
                            key.Enabled = !_bDisable;
                        }
                        else if (item.GetType().Name.ToString().ToLower() == "inputtext")
                        {
                            WSWD.WmallPos.POS.FX.Win.UserControls.InputText txt = (WSWD.WmallPos.POS.FX.Win.UserControls.InputText)item;
                            txt.Enabled = !_bDisable;
                        }
                        else if (item.GetType().Name.ToString().ToLower() == "button")
                        {
                            WSWD.WmallPos.POS.FX.Win.UserControls.Button btn = (WSWD.WmallPos.POS.FX.Win.UserControls.Button)item;
                            btn.Enabled = !_bDisable;
                        }
                        else if (item.GetType().Name.ToString().ToLower() == "printlabelinfo")
                        {
                            PrintLabelInfo lbl = (PrintLabelInfo)item;
                            lbl.Enabled        = !_bDisable;
                        }
                        else if (item.GetType().Name.ToString().ToLower() == "salegridpanel")
                        {
                            SaleGridPanel grd = (SaleGridPanel)item;
                            grd.Enabled       = !_bDisable;
                        }
                    }
                });
            }
            else
            {
                foreach (var item in this.Controls)
                {
                    if (item.GetType().Name.ToString().ToLower() == "keypad")
                    {
                        WSWD.WmallPos.POS.FX.Win.UserControls.KeyPad key = (WSWD.WmallPos.POS.FX.Win.UserControls.KeyPad)item;
                        key.Enabled = !_bDisable;
                    }
                    else if (item.GetType().Name.ToString().ToLower() == "inputtext")
                    {
                        WSWD.WmallPos.POS.FX.Win.UserControls.InputText txt = (WSWD.WmallPos.POS.FX.Win.UserControls.InputText)item;
                        txt.Enabled = !_bDisable;
                    }
                    else if (item.GetType().Name.ToString().ToLower() == "button")
                    {
                        WSWD.WmallPos.POS.FX.Win.UserControls.Button btn = (WSWD.WmallPos.POS.FX.Win.UserControls.Button)item;
                        btn.Enabled = !_bDisable;
                    }
                    else if (item.GetType().Name.ToString().ToLower() == "printlabelinfo")
                    {
                        PrintLabelInfo lbl = (PrintLabelInfo)item;
                        lbl.Enabled = !_bDisable;
                    }
                    else if (item.GetType().Name.ToString().ToLower() == "salegridpanel")
                    {
                        SaleGridPanel grd = (SaleGridPanel)item;
                        grd.Enabled = !_bDisable;
                    }
                }
            }

            //Application.DoEvents();
        }
Ejemplo n.º 16
0
 private void AddPdfLabel(StreamWriter writer, PrintLabelInfo label)
 {
     //Nothing
     throw new NotSupportedException("Unable to mix pdf and zpl label formats");
 }