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