pdf电脑地址转网络地址.txt

            List<LableFileResponse> data = new List<LableFileResponse>();
            for (var i = 0; i < listServerCode.Count; i++)
            {
                if (listServerCode == null || listServerCode.Count == 0)
                {
                    return new LabelResponse()
                    {
                        success = 0,
                        cnmessage = "未获取到标签信息" +
                        "",
                        enmessage = "Not get the label information"
                    };
                }
                WebHeaderCollection we = new WebHeaderCollection();
                we.Add("ClientKey", ClientKey);
                we.Add("ClientSecret", ClientSecret);

                string strResult = Utils.HttpPost(strUrl, "orderNumber=" + listShipperCode[0], we);

                Lable upsresult = JsonHelper.JSONToObject<Lable>(strResult);

                List<string> urlList = new List<string>();
                //生成pdf 文件地址
                string pdf_file_path = string.Format("/api-lable/pdf/{0}/", DateTime.Now.ToString("yyyyMMdd"));
                string pdf_file_name_pdf = string.Format("{0}.pdf", System.Guid.NewGuid().ToString());
                string pdf_output_filepath = System.Web.HttpContext.Current.Server.MapPath("~" + pdf_file_path);

                string strLabelSavePath = pdf_output_filepath + pdf_file_name_pdf;
                string strDirectory = Path.GetDirectoryName(strLabelSavePath);

                if (!Directory.Exists(strDirectory))
                {
                    Directory.CreateDirectory(strDirectory);
                }


                byte[] bytes = Convert.FromBase64String(upsresult.data.image);
                System.IO.FileStream stream =
                    new FileStream(strLabelSavePath, FileMode.CreateNew);
                System.IO.BinaryWriter writer =
                    new BinaryWriter(stream);
                writer.Write(bytes, 0, bytes.Length);
                writer.Close();



                png图片转pdf
                //var document = new Document(iTextSharp.text.PageSize.A4, 25, 25, 25, 25);
                //using (var stream = new FileStream(strLabelSavePath, FileMode.Create, FileAccess.Write, FileShare.None))
                //{
                //    PdfWriter.GetInstance(document, stream);
                //    document.Open();
                //    using (var imageStream = new FileStream(pngPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                //    {
                //        var image = iTextSharp.text.Image.GetInstance(imageStream);
                //        if (image.Height > iTextSharp.text.PageSize.A4.Height - 25)
                //        {
                //            image.ScaleToFit(iTextSharp.text.PageSize.A4.Width - 25, iTextSharp.text.PageSize.A4.Height - 25);
                //        }
                //        else if (image.Width > iTextSharp.text.PageSize.A4.Width - 25)
                //        {
                //            image.ScaleToFit(iTextSharp.text.PageSize.A4.Width - 25, iTextSharp.text.PageSize.A4.Height - 25);
                //        }
                //        image.Alignment = iTextSharp.text.Image.ALIGN_MIDDLE;
                //        document.NewPage();
                //        document.Add(image);
                //    }

                //    document.Close();
                //}
                urlList.Add(strLabelSavePath);


                string lable_file = string.Empty;
                //多个合成一个pdf的地址
                string filename_pdf = string.Format("{0}.pdf", System.Guid.NewGuid().ToString());
                string file_path_pdf = string.Format("/api-lable/pdf/{0}/", DateTime.Now.ToString("yyyyMMdd"));
                string output_filepath_pdf = System.Web.HttpContext.Current.Server.MapPath("~" + file_path_pdf);

                string strLabelSavePathPdf = output_filepath_pdf + filename_pdf; //file_path + filename;// 
                using (FileStream targetStream = new FileStream(strLabelSavePathPdf, FileMode.Create, FileAccess.Write, FileShare.None))
                {
                    targetStream.Close();
                }
                PDFHeper.MergePages(strLabelSavePathPdf, urlList.ToArray());
                List<string> logistics_codes = new List<string>();
                logistics_codes.Add(listServerCode[0]);
                lable_file = "http://" + DTRequest.GetCurrentFullHost() + file_path_pdf + filename_pdf;


                LableFileResponse datas = new LableFileResponse() { lable_file_type = LabelPrintConst.FILE_TYPE_2, lable_file = lable_file, logistics_codes = logistics_codes };
                data.Add(datas);
            }
            if (data.Count > 1)
            {
                List<string> sti = new List<string>();
                for (var i = 0; i < data.Count; i++)
                {
                    sti.Add(data[i].lable_file);
                }
                string pdf_file_path1 = string.Format("/api-lable/pdf/{0}/", DateTime.Now.ToString("yyyyMMdd"));
                string pdf_file_name1 = string.Format("{0}.pdf", System.Guid.NewGuid().ToString());
                string labelUrl1 = "~" + pdf_file_path1 + pdf_file_name1;
                labelUrl1 = pdf_file_path1 + pdf_file_name1;
                //PDFHeper.MergePDFFiles(sti, labelUrl);
                labelUrl1 = System.Web.HttpContext.Current.Server.MapPath("~" + labelUrl1);
                //sti.Add(labelUrl1);
                PDFHeper.MergePages(labelUrl1, sti.ToArray());
                labelUrl1 = "http://" + DTRequest.GetCurrentFullHost() + pdf_file_path1 + pdf_file_name1;
                return new LabelResponse() { success = 1, data = new List<LableFileResponse>() { new LableFileResponse() { lable_file_type = LabelPrintConst.FILE_TYPE_2, lable_file = labelUrl1 } } };
            }
            else if (data.Count == 1)
            {
                return new LabelResponse() { success = 1, data = data };
            }
    public static void MergePages(string outputPdfPath, string[] lstFiles)
    {
        PdfReader reader = null;
        Document sourceDocument = null;
        PdfCopy pdfCopyProvider = null;
        PdfImportedPage importedPage;
        sourceDocument = new Document();
        pdfCopyProvider = new PdfCopy(sourceDocument,
        new System.IO.FileStream(outputPdfPath, System.IO.FileMode.Create));
        sourceDocument.Open();
        try
        {
            foreach (string item in lstFiles)
            {
                reader = new PdfReader(item);
                int pages = reader.NumberOfPages;
                //Add pages of current file
                for (int i = 1; i <= pages; i++)
                {
                    importedPage = pdfCopyProvider.GetImportedPage(reader, i);
                    pdfCopyProvider.AddPage(importedPage);
                }
                reader.Close();
            }
            sourceDocument.Close();
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值