1.生成base64压缩文件流(C#)
首先在NuGet中安装插件【sharpziplib】
对base64pdf进行压缩
///
/// 将文本信息,写入zip压缩包
///
/// 文本信息
/// 文件名称
/// 返回base64压缩文件
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
复制代码