base64Pdf文件进行压缩传输(C#-Vue)

1,105 阅读1分钟

1.生成base64压缩文件流(C#)

  • 首先在NuGet中安装插件【sharpziplib】

  • 对base64pdf进行压缩

        /// <summary>
        /// 将文本信息,写入zip压缩包
        /// </summary>
        /// <param name="xmldata">文本信息</param>
        /// <param name="xmlFileName">文件名称</param>
        /// <returns>返回base64压缩文件</returns>
        public static string CreateZIPBase64(string xmldata, string xmlFileName)
        {
    
            try
            {
                byte[] byteArray = System.Text.Encoding.Default.GetBytes(xmldata);
    
                using (MemoryStream ms = new MemoryStream())
                {
                    using (ZipOutputStream zips = new ZipOutputStream(ms))
                    {
                        zips.SetLevel(9); // 0 - store only to 9 - means best compression
                        var entry = new ZipEntry(xmlFileName);
                        entry.DateTime = DateTime.Now;
                        zips.PutNextEntry(entry);
                        zips.Write(byteArray, 0, byteArray.Length);
                        zips.Finish();
                    }
                    byte[] zipBytes = ms.ToArray(); //这里是一个zip压缩的文件流
    
                    return Convert.ToBase64String(zipBytes);
                    //return zipBytes;
                }
    
            }
            catch (Exception ex)
            {               
                throw ex;
            }
    
        }
    

**

  • 方法使用

**

 //使用
var base64Pdf=PdfHelper.MergeBase64PDF(data);//获取base64的PDF文件流
var result = ZipHelper.CreateZIPBase64(base64Pdf, "hrpBase64");return new ResponseData
 {
     data = result,
     msg = "success",
     code = 0
 };

2.使用jszip插件进行解压(Vue)

1.安装

npm i jszip -S  or  npm install jszip

2.vue中使用

import JsZip from 'jszip';//引入

let {res:data}=await getData();//接口请求
if(res.code!=0) return this.$message.error(res.msg);
let base64ZipData=res.data;//经过压缩的pdf
 var zip = new JsZip(); let reuslt=await zip.loadAsync(res.data, {base64: true});//这里是压缩后的base64文件流    let base64Pdf=await zip.file("hrpBase64").async("string");//解压成base64的pdf文件流
 printJS({ printable: basePdf, type: 'pdf', base64: true });//将pdf进行打印,要安装print-js