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 Spire.Pdf;using System;using System.Drawing;using System.Drawing.Imaging;using System.IO;using System.Linq;
namespace ShenTun.Ecg.Common{ public class PdfHelper { /// <summary>
/// 将pdf文件转换为图片文件
/// </summary>
/// <param name="stream">pdf文件流</param>
/// <param name="pageIndex">要转换的pdf页索引(从0开始)</param>
/// <param name="dpiX">dpi</param>
/// <param name="dpiY">dpi</param>
/// <param name="mimeType">mime类型</param>
/// <returns></returns>
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; } } } }}
|