盛世宏图 发表于 4 天前

C# PDF下载地址转图片(Base64 编码)

实现思路:
步骤一、根据PDF地址下载pdf文件生存为临时文件,得到pdf文件的byte[]数组
/// 从指定的 URL 下载 PDF 文件
      publicbyte[] DownloadPdf(string url)
      {
            try
            {
                using (WebClient client = new WebClient())
                {
                  return client.DownloadData(url);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"下载PDF异常: {ex.Message}");
                return null;
            }
      } 步骤二、初始化pdfDocument类,并加载PDF文档,遍历pdf文件,一页生成一个jpg图片,并生存图片
string url = infoEntity.ReportUrl; //pdf地址
byte[] pdfBytes = DownloadPdf(url);
string tempPdfPath = Path.GetTempFileName();
File.WriteAllBytes(tempPdfPath, pdfBytes);
// 初始化一个PdfDocument类实例,并加载PDF文档
PdfDocument doc = new PdfDocument();
doc.LoadFromFile(tempPdfPath);
// 遍历PDF每一页
for (int i = 0; i < doc.Pages.Count; i++)
{
    Report_Pic report_Pic = new Report_Pic();
// 将PDF页转换成Bitmap图形
   System.Drawing.Image bmp = doc.SaveAsImage(i);
   string imgPath = Application.StartupPath;
   // 将Bitmap图形保存为jpg格式的图片
   string pngPath = $"{imgPath}\\img\\{infoEntity.ReportFileName.Replace(".pdf","")}_page_{i}.jpg";

   if (File.Exists(pngPath))
   {
   try
   {
       File.Delete(pngPath);
   }
   catch (Exception ex)
   {
       Log.error($"删除图片时出错: {ex.Message}");
   }
   }
bmp.Save(pngPath, System.Drawing.Imaging.ImageFormat.Jpeg);
Log.info("PDF地址:"+tempPdfPath+"    图片地址:" + pngPath);

string imageBase64Str= ConvertImageToBase64(bmp); //图片内容
Log.info("图片Base64编码:"+imageBase64Str);

//删除图片
File.Delete(pngPath);
}
// 删除临时文件
File.Delete(tempPdfPath); 步骤三、将每张图片转换成Base64编码
// 将图片转换为 Base64 编码
      static string ConvertImageToBase64(Image image)
      {
            using (MemoryStream ms = new MemoryStream())
            {
                image.Save(ms, ImageFormat.Jpeg);
                byte[] imageBytes = ms.ToArray();
                return Convert.ToBase64String(imageBytes);
            }
      }
备注:
目标框架:.Net Framework 4
引用库
using System.Net;
using System.Drawing;//版本4.0.0.0
using System.Drawing.Imaging;
using Spire.Pdf;   //版本8.6.1.0

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: C# PDF下载地址转图片(Base64 编码)