PDF如何拆分为图片并保存,分享完整代码

CSharp中我一般使用 itextSharp与Spire来操作PDF文件,一般生成PDF、转换PDF、合并PDF都很方便,但是 itextSharp不能直接将PDF转换为图片 。
当然有多种方式可以实现PDF转为图片,先提供一种用起来比较方便的方式:
首先,NuGet中下载安装 PdfiumViewer与ImageResizer.Plugins.PdfiumRenderer.Pdfium.Dll
添加引用:
using System.Drawing.Imaging;
【PDF如何拆分为图片并保存,分享完整代码】using PdfiumViewer;
using System.Drawing;
///
/// 将PDF转换为图片/// /// pdf文件位置///
pdf文件张数///
pdf文件尺寸///
输出图片位置与名称public static void RenderPage(string pdfPath, int pageNumber, System.Drawing.Size size, string outputPath, int dpi = 300){using (var document = PdfiumViewer.PdfDocument.Load(pdfPath))using (var stream = new FileStream(outputPath, FileMode.Create))using (var image = GetPageImage(pageNumber, size, document, dpi)){image.Save(stream, ImageFormat.Jpeg);}}private static System.Drawing.Image GetPageImage(int pageNumber, Size size, PdfiumViewer.PdfDocument document, int dpi){return document.Render(pageNumber - 1, size.Width, size.Height, dpi, dpi, PdfRenderFlags.Annotations);}///
/// pdf文件绝对路径//////
public static void Pdf2Images(string sourcePdf){var pdf = PdfiumViewer.PdfDocument.Load(sourcePdf);var pdfpage = pdf.PageCount;var pagesizes = pdf.PageSizes;for (int i = 1; i <= pdfpage; i){Size size = new Size();size.Height = (int)pagesizes[(i - 1)].Height;size.Width = (int)pagesizes[(i - 1)].Width;RenderPage(sourcePdf, i, size, Path.GetDirectoryName(sourcePdf)"\img_"i@".jpg");}}

相关经验推荐