900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > pdf文件流转图片流方法(PDF文档所有页全部转换为图片 )

pdf文件流转图片流方法(PDF文档所有页全部转换为图片 )

时间:2021-09-16 02:37:20

相关推荐

pdf文件流转图片流方法(PDF文档所有页全部转换为图片 )

/// <summary>

/// 转换的图片清晰度,1最不清醒,10最清晰

/// </summary>

public enum Definition

{

One = 1, Two = 2, Three = 3, Four = 4, Five = 5, Six = 6, Seven = 7, Eight = 8, Nine = 9, Ten = 10

}

/// 将1个PDF文档所有页全部转换为图片

/// <param name="imageFormat">设置所需图片格式</param>

/// <param name="definition">设置图片的清晰度,数字越大越清晰</param>

public static byte[] PdfToImgForFileId(int FileId,

ImageFormat imageFormat, Definition definition)

{

//根据图片获取文件对象

tbl_File_Info document = tbl_File_Info.GetBytesInfoForid(FileId);

//定义pdf流

MemoryStream pdfmsinfo = new MemoryStream();

//获取流文件

pdfmsinfo.Write(document.FILE_STREAM, 0, document.FILE_STREAM.Length);

//打开pdf文件

PDFFile pdfFile = PDFFile.Open(pdfmsinfo);

int startPageNum = 1;

int endPageNum = pdfFile.PageCount;

//定义合并图片对象集合

List<Bitmap> bitMapList = new List<Bitmap>();

//获取第一张pdf图片信息

Bitmap pageImage = pdfFile.GetPageImage(0, 56 * (int)definition);

int canKao = pageImage.Width > pageImage.Height ? pageImage.Height : pageImage.Width;

//高度

int newHeight = canKao > 1080 ? pageImage.Height / 2 : pageImage.Height;

//宽度

int newWidth = canKao > 1080 ? pageImage.Width / 2 : pageImage.Width;

//创建要显示的图片对象,根据参数的个数设置宽度(整体大图)

Bitmap backgroudImg = new Bitmap(newWidth, endPageNum * newHeight);

//整体大图绘画工具

Graphics bitgraphics = Graphics.FromImage(backgroudImg);

//清除画布,背景设置为白色

//bitgraphics.Clear(System.Drawing.Color.White);

for (int i = startPageNum; i <= endPageNum; i++)

{

try

{

if (i > 1)

{

//获取对应页面的pdf文件

pageImage = pdfFile.GetPageImage(i - 1, 56 * (int)definition);

}

//将子图图片绘画到 大图中

bitgraphics.DrawImage(pageImage, 0, (i - 1) * newHeight, newWidth, newHeight);

pageImage.Dispose();

}

catch (Exception ex)

{

}

}

MemoryStream imgmsinfo = new MemoryStream();

backgroudImg.Save(imgmsinfo, imageFormat);

//整体大图绘画释放

bitgraphics.Dispose();

//pdf文件释放

pdfFile.Dispose();

return imgmsinfo.ToArray();

}

引用Dll: ponents.PDFRender4NET.dll

引用参考链接:/tearsek/article/details/49680465

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。