Esempio n. 1
0
        public async Task <ActionResult> printLabel([FromBody]  printLabelRequest printLabelRequest)
        {
            try
            {
                var items = await(from o in db.TbtOrder
                                  where printLabelRequest.DocNums.Contains(o.DocNum)
                                  select o).ToListAsync();
                List <LabelItem> labelItems = new List <LabelItem>();
                items.ForEach(x =>
                {
                    LabelItem l = new LabelItem
                    {
                        Dscription = x.Dscription,
                        Quantity   = x.Quantity,
                    };
                    labelItems.Add(l);
                });
                LabelDocumentModel labelDocumentModel = new LabelDocumentModel
                {
                    Address    = items.FirstOrDefault().Address,
                    CardName   = items.FirstOrDefault().CardName,
                    DocDate    = items.FirstOrDefault().DocDate,
                    DocDueDate = items.FirstOrDefault().DocDueDate,
                    DocNum     = string.Join(",", printLabelRequest.DocNums.ToArray()),
                    labelItems = labelItems,
                    Remark     = items.FirstOrDefault().Remark
                };


                LabelDocument pDoc = new LabelDocument(this._hostingEnvironment);

                Stream resultPDFStream = pDoc.CreatePDF(labelDocumentModel);
                resultPDFStream.Position = 0;
                if (resultPDFStream.Length != 0)
                {
                    FileStreamResult fileStreamResult = new FileStreamResult(resultPDFStream, "application/pdf");
                    fileStreamResult.FileDownloadName = "label_" + "" + ".pdf";


                    return(fileStreamResult);
                }
                else
                {
                    return(NotFound());
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(500, ex));
            }
        }
Esempio n. 2
0
        public Stream CreatePDF(LabelDocumentModel labelDocumentModel)
        {
            System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
            Document  document = this._document;
            PdfWriter writer   = PdfWriter.GetInstance(document, memoryStream);

            document.Open();

            float[]   widthBoxs = new float[] { 75f, 20f };
            PdfPTable tableBox  = new PdfPTable(widthBoxs.Count());

            tableBox.SetWidths(widthBoxs);
            tableBox.WidthPercentage = 95f;

            PdfPTable tableTopLeft = new PdfPTable(1);

            tableTopLeft.WidthPercentage = 90f;
            tableTopLeft.AddCell(bulidColumnTitleBox(@"ผู้รับเงิน", 18, 1, Element.ALIGN_LEFT, 0));
            tableTopLeft.AddCell(bulidColumnTitleBox("   " + labelDocumentModel.CardName, 16, 1, Element.ALIGN_LEFT, 0));
            tableTopLeft.AddCell(bulidColumnTitleBox("   " + labelDocumentModel.Address, 16, 1, Element.ALIGN_LEFT, 0));
            tableTopLeft.AddCell(bulidColumnTitleBox("   " + @"โทรศัพท์", 16, 1, Element.ALIGN_LEFT, 0));

            PdfPTable tableTopRight = new PdfPTable(1);

            tableTopRight.WidthPercentage = 90f;
            tableTopRight.AddCell(bulidColumnTitleBox(@"จำนวน", 18, 1, Element.ALIGN_CENTER, 1));
            tableTopRight.AddCell(bulidColumnTitleBox(@"1", 30, 1, Element.ALIGN_CENTER, 1));
            tableTopRight.AddCell(bulidColumnTitleBox(@"1", 30, 1, Element.ALIGN_CENTER, 1));

            PdfPCell cellLeft = new PdfPCell(tableTopLeft);

            tableBox.AddCell(cellLeft);

            PdfPCell cellRight = new PdfPCell(tableTopRight);

            tableBox.AddCell(cellRight);

            document.Add(tableBox);
            //------------------------------------------------------
            float[]   widths      = new float[] { 20f, 70f };
            PdfPTable tableDetail = new PdfPTable(widths.Count());

            tableDetail.WidthPercentage = 90f;
            tableDetail.SetWidths(widths);

            tableDetail.AddCell(bulidColumnDetail(@"PO", 16));
            tableDetail.AddCell(bulidColumnDetail(@"", 14));

            tableDetail.AddCell(bulidColumnDetail(@"ใบเสร็จ", 16));
            tableDetail.AddCell(bulidColumnDetail(labelDocumentModel.DocNum, 14));

            tableDetail.AddCell(bulidColumnDetail(@"วันที่ออกใบเสร็จ", 16));
            tableDetail.AddCell(bulidColumnDetail(labelDocumentModel.DocDate == null ? "" : labelDocumentModel.DocDate.Value.ToString("dd/MM/yyyy"), 14));

            tableDetail.AddCell(bulidColumnDetail(@"วันที่ส่งสินค้า", 16));
            tableDetail.AddCell(bulidColumnDetail(labelDocumentModel.DocDueDate == null ? "" : labelDocumentModel.DocDueDate.Value.ToString("dd/MM/yyyy"), 14));

            tableDetail.AddCell(bulidColumnDetail(@"คำสั่งพิเศษ(ระบุ)", 16));
            tableDetail.AddCell(bulidColumnDetail(labelDocumentModel.Remark, 14));
            document.Add(tableDetail);

            //------------------------------------------------------
            float[]   Itemwidths = new float[] { 10f, 75f, 10f };
            string[]  headers    = new string[] { "No.", "รายการ", "จำนวน" };
            PdfPTable tableItem  = new PdfPTable(Itemwidths.Count());

            tableItem.WidthPercentage = 95f;
            tableItem.SetWidths(Itemwidths);
            tableItem.HeaderRows = 2;
            tableItem.AddCell(bulidTextDeteail(@"โปรดตรวจสอบสินค้าทันที หากไม่ถูกต้องกรุณาแจ้งบริษัทภายใน 15 วัน", 22, headers.Count()));


            foreach (string h in headers)
            {
                tableItem.AddCell(bulidColumnHeader(h, 16));
            }
            int no = 1;

            foreach (var i in labelDocumentModel.labelItems)
            {
                bool isLast = false;
                if (no == labelDocumentModel.labelItems.Count())
                {
                    isLast = true;
                }

                tableItem.AddCell(bulidColumnRows(no.ToString(), 14, Element.ALIGN_CENTER, isLast));
                tableItem.AddCell(bulidColumnRows(i.Dscription, 14, Element.ALIGN_LEFT, isLast));
                tableItem.AddCell(bulidColumnRows(i.Quantity.ToString(), 14, Element.ALIGN_CENTER, isLast));
                no++;
            }
            document.Add(tableItem);
            document.Close();
            return(memoryStream);
        }