You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
using PdfiumViewer;using System.Drawing.Imaging;using System.Drawing;using System;using System.Linq;using System.Threading.Tasks;using System.IO;using System.Collections.Generic;
namespace Shentun.Utilities{ public class PdfiumConverter { public static List<string> ConvertPdfToImages(string pdfBase64) { List<string> base64Images = new List<string>(); //try
//{
if (pdfBase64.Contains("base64,")) { pdfBase64 = pdfBase64.Substring(pdfBase64.IndexOf(",") + 1); } // 将Base64字符串转换为字节数组
byte[] pdfBytes = Convert.FromBase64String(pdfBase64); Stream pdfStream = new MemoryStream(pdfBytes);
using var document = PdfDocument.Load(pdfStream);
for (int i = 0; i < document.PageCount; i++) { // 将页面转换为图片
using (Image image = document.Render(i, 600, 600, true)) { // 将图片转换为Base64字符串
string base64 = ImageToBase64(image, ImageFormat.Jpeg); base64Images.Add(base64); } }
//}
//catch (Exception ex)
//{
//}
return base64Images; }
private static string ImageToBase64(Image image, ImageFormat format) { using (MemoryStream ms = new MemoryStream()) { image.Save(ms, format); byte[] imageBytes = ms.ToArray(); return Convert.ToBase64String(imageBytes); } } }}
|