using Spire.Pdf;
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
namespace ShenTun.Ecg.Common
{
public class PdfHelper
{
///
/// 将pdf文件转换为图片文件
///
/// pdf文件流
/// 要转换的pdf页索引(从0开始)
/// dpi
/// dpi
/// mime类型
///
public static Stream PdfToImage(Stream stream, int pageIndex = 0, int dpiX = 300, int dpiY = 300, string mimeType = "image/jpg")
{
using (PdfDocument document = new PdfDocument())
{
document.LoadFromStream(stream);
// 图片类型选择为Bitmap
Spire.Pdf.Graphics.PdfImageType pdfImageType = Spire.Pdf.Graphics.PdfImageType.Bitmap;
// 将pdf中指定的页码转换为图片对象并返回
using (Image image = document.SaveAsImage(pageIndex, pdfImageType, dpiX, dpiY))
{
// 获取相应的编码器
ImageCodecInfo codecInfo = (
from item in ImageCodecInfo.GetImageEncoders()
where mimeType.Equals(item.MimeType)
select item
).FirstOrDefault();
EncoderParameters encoderParams = new EncoderParameters(1);
encoderParams.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);
MemoryStream result = new MemoryStream();
image.Save(result, codecInfo, encoderParams);
result.Position = 0;
return result;
}
}
}
}
}