pdf转byte[]再转pdf文件进行保存 /// <summary> /// pdf转byte[]再转pdf文件进行保存 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button3_Click(object sender, EventArgs e) { string cesi1 = AppDomain.CurrentDomain.BaseDirectory + "FilePath\\" + 11 + ".pdf";//测试pdf保存文件 byte[] bytes = File.ReadAllBytes("C:\\Users\\Administrator\\Desktop\\测试.pdf");//测试pdf文件 string strResult = byteToHexStr(bytes);//将pdf byte[]数组转16进制字符串 this.richTextBox1.Text = strResult; byte[] byteArray = StrToHexByte(strResult);//将16进制的字符串 转为byte[] System.IO.File.WriteAllBytes(@cesi1, byteArray);//根据byte[]数组输出保存pdf文件 } /// <summary> /// 字节数组转16进制字符串 /// </summary> /// <param name="bytes"></param> /// <returns></returns> public static string byteToHexStr(byte[] bytes) { string returnStr = ""; if (bytes != null) { for (int i = 0; i < bytes.Length; i++) { returnStr += bytes[i].ToString("X2"); } } return returnStr; } /// <summary> /// 将16进制的字符串转为byte[] /// </summary> /// <param name="hexString"></param> /// <returns></returns> public static byte[] StrToHexByte(string hexString) { hexString = hexString.Replace(" ", ""); if ((hexString.Length % 2) != 0) hexString += " "; byte[] returnBytes = new byte[hexString.Length / 2]; for (int i = 0; i < returnBytes.Length; i++) returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16); return returnBytes; }
pdf base64数据流转pdf文件
方法一: /// <summary> ///Base64数据流转pdf /// </summary> /// <param name="strIn"></param> public void Base64Pdf(string strIn) { try { var filePath = System.AppDomain.CurrentDomain.BaseDirectory.ToString(); filePath = filePath + "PdfRecord"; //判断是否有对应文件夹,没有则创建 if (Directory.Exists(filePath) == false) { Directory.CreateDirectory(filePath); } filePathSet = filePath; var filePathInfo = filePath + "\\" + "cesi" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".pdf"; base64StringToPdf(strIn, filePathInfo); } catch (Exception ex) { LogHelper.WriteLog(GetType(), "Base64Pdf异常错误为:" + ex.Message); } } /// <summary> /// base64 转PDF /// </summary> /// <param name="base64Content"></param> /// <param name="filePath"></param> public void base64StringToPdf(String base64Content, String filePath) { try { LogHelper.WriteLog(GetType(), "进入base64StringToPdf方法,入参为:" + base64Content + "路径为:" + filePath); base64Content = base64Content.Replace("data:application/pdf;filename=generated.pdf;base64,", string.Empty); string base64ContentData = base64Content.Trim().Replace("%", "").Replace(",", "").Replace(" ", "+"); if (base64ContentData.Length % 4 > 0) { base64ContentData = base64ContentData.PadRight(base64ContentData.Length + 4 - base64ContentData.Length % 4, '='); } byte[] bytes = Convert.FromBase64String(base64ContentData); string location = filePath; System.IO.FileStream stream = new FileStream(location, FileMode.CreateNew); System.IO.BinaryWriter writer = new BinaryWriter(stream); writer.Write(bytes, 0, bytes.Length); writer.Close(); } catch (Exception ex) { LogHelper.WriteLog(GetType(), "base64StringToPdf异常错误为:" + ex.Message); } } 方法二: private void button1_Click(object sender, EventArgs e) { string fName = "C:\\Users\\Administrator\\Desktop\\bin\\Debug\\测试.pdf"; byte[] b = File.ReadAllBytes(fName); string str = Convert.ToBase64String(b); //byte[] 转string this.richTextBox1.Text = str;//获取base64数据流 } private void button2_Click(object sender, EventArgs e) { string str = this.richTextBox1.Text;//获取base64数据流 byte[] imageBytes = Convert.FromBase64String(str);//string转byte[] File.WriteAllBytes(@"c:\test.Pdf", imageBytes);//保存pdf文件 }
标签:string,filePath,C#,base64,bytes,Length,pdf,byte From: https://www.cnblogs.com/lydj/p/17006149.html