参考:https://blog.csdn.net/lai124793549/article/details/53392281

https://www.cnblogs.com/xiewei123/p/10902578.html

百度云链接:https://pan.baidu.com/s/1oiMEZl9xJWVAzf_JZaw3Ww  提取码:8dna

方法1:添加引用  O2S.Components.PDFRender4NET

   public enum Definition
{
One = , Two = , Three = , Four = , Five = , Six = , Seven = , Eight = , Nine = , Ten =
}
/// <summary>
/// 将PDF转换为图片的方法
/// </summary>
/// <param name="pdfInputPath">PDF文件路径</param>
/// <param name="imageOutputPath">图片输出路径</param>
/// <param name="imageName">生成图片的名字</param>
/// <param name="startPageNum">从PDF文档的第几页开始转换</param>
/// <param name="endPageNum">从PDF文档的第几页开始停止转换</param>
/// <param name="imageFormat">设置所需图片格式</param>
/// <param name="definition">设置图片的清晰度,数字越大越清晰</param>
public string[] PdfToPng(string pdfInputPath, string imageOutputPath,
string imageName, int startPageNum, int endPageNum, ImageFormat imageFormat , int definition)
{
List<string> outFileList = new List<string>();
PDFFile pdfFile = PDFFile.Open(pdfInputPath);
if (!Directory.Exists(imageOutputPath))
{
Directory.CreateDirectory(imageOutputPath);
}
// validate pageNum
if (startPageNum <= )
{
startPageNum = ;
}
if (endPageNum > pdfFile.PageCount)
{
endPageNum = pdfFile.PageCount;
}
if (startPageNum > endPageNum)
{
int tempPageNum = startPageNum;
startPageNum = endPageNum;
endPageNum = startPageNum;
}
// start to convert each page
if (endPageNum == )
{
Bitmap pageImage = pdfFile.GetPageImage( - , * (int)definition);
pageImage.Save(imageOutputPath + imageName + "." + imageFormat, imageFormat);
pageImage.Dispose();
outFileList.Add(imageOutputPath + imageName + "." + imageFormat);
}
else
{
for (int i = startPageNum; i <= endPageNum; i++)
{
Bitmap pageImage = pdfFile.GetPageImage(i - , * (int)definition);
pageImage.Save(imageOutputPath + imageName + i + "." + imageFormat, imageFormat);
pageImage.Dispose();
outFileList.Add(imageOutputPath + imageName + i + "." + imageFormat);
}
}
pdfFile.Dispose();
return outFileList.ToArray(); ;
}

方法2:添加引用Spire.License.dll和 Spire.Pdf.dll

       /// <summary>
/// Pdf 转图片。缓存在系统目录
/// </summary>
/// <param name="pdfPath"></param>
/// <param name="outPath"></param>
/// <returns></returns>
public string[] ToImage(string pdfPath,string outPath)
{
if (!File.Exists(pdfPath)) return null;
string err = string.Empty;
using (FileStream fs = new FileStream(pdfPath, FileMode.Open))
{
return ToImage(fs, outPath,out err);
}
}
public string[] ToImage(Stream s, string outPath, out string err)
{
try
{
if (outPath.Last() != '\\')
{
outPath += "\\";
}
if (!System.IO.Directory.Exists(outPath))
{
Directory.CreateDirectory(outPath);
} List<string> outFileList = new List<string>(); using (IDisposable pdfDocument = dynamicSpirePdf.CreatePdfDocument(s))
{
int count = dynamicSpirePdf.GetCount(dynamicSpirePdf.GetPages(pdfDocument));
for (int i = ; i < count; i++)
{
//将PDF页转换成bitmap图形
using (System.Drawing.Image bmp = dynamicSpirePdf.SaveAsImage(pdfDocument,i))
{
//将bitmap图形保存为png图片
var file = string.Format("{0}{1}.bmp", outPath, Guid.NewGuid().ToString("D"));
bmp.Save(file, System.Drawing.Imaging.ImageFormat.Bmp);
outFileList.Add(file);
}
}
}
err = string.Empty;
return outFileList.ToArray();
}
catch (Exception e)
{
err = e.Message + Environment.NewLine + e.StackTrace;
return null;
}
}

C# PDF文件转图片的更多相关文章

  1. 【使用Itext处理PDF文档(新建PDF文件、修改PDF文件、PDF中插入图片、将PDF文件转换为图片)】

    iText简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文件转 ...

  2. JavaWeb项目生成PDF文件添加水印图片并导出

    一.前言 首先需要在Maven中添加相应的jar包依赖,若项目没用到Maven,也可自行下载相应所需的jar包(itextpdf.jar 与 itext-asian.jar),如下图所示.点此下载 M ...

  3. C#如何在PDF文件添加图片印章

    文档中添加印章可以起一定的作用,比如,防止文件随意被使用,或者确保文档内容的安全性和权威性.C#添加图片印章其实也有很多实现方法,这里我使用的是免费的第三方软件Free Spire.PDF,向大家阐述 ...

  4. Java给图片和PDF文件添加水印(图片水印和文字水印)

    有时候我们看到的图片或者PDF文件会自动加上水印.分为文字水印和图片水印. ----------------------------图片水印---------------------------- 1 ...

  5. 使用Python爬取微信公众号文章并保存为PDF文件(解决图片不显示的问题)

    前言 第一次写博客,主要内容是爬取微信公众号的文章,将文章以PDF格式保存在本地. 爬取微信公众号文章(使用wechatsogou) 1.安装 pip install wechatsogou --up ...

  6. 用 ghostscript 转化PDF文件为图片 的参数设置

    example: gswin32 -dSAFER -dBATCH -dNOPAUSE -r300 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -sDEVICE=jp ...

  7. 前端PDF文件转图片方法

    第一步:先下载pdfjs,网址:PDF下载地址,再引入到项目中,我是标签直接引用的 <script src="pdfjs/build/pdf.js"></scri ...

  8. 利用icepdf将pdf文件转为图片

    所需jar 包为icepdf-core.jar.icepdf-extra.jar.icepdf-pro-intl.jar.icepdf-pro.jar和icepdf-viewer.jar. 示例代码如 ...

  9. C# 给PDF文件添加水印

      水印种类及功能介绍 PDF水印分为两种:文本水印和图片水印.文本水印一般被用在商业领域,提醒读者该文档是受版权保护的,其他人不能抄袭或者免费使用.除了这个特征,水印还可以用来标记这个文档 的一些基 ...

随机推荐

  1. Linux–Nginx攻略

    什么是Nginx Nginx (“engine x”) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为俄罗斯访问量第二的Ra ...

  2. kernel32.dll提供的接口分析

    HANDLE hToken = NULL; DWORD cursessionid; HMODULE hInstKernel32 = NULL; hInstKernel32 = LoadLibrary( ...

  3. 继承和构造函数语法造成的一个bug

    一 出错误的代码 开发环境: visual studio 2017 社区版 #include "pch.h" #include <iostream> #include ...

  4. 前端每日实战:25# 视频演示如何用纯 CSS 创作一个慧星拖尾效果的 loader 动画

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/YLRLaM 可交互视频教程 此视频 ...

  5. Apache HttpClient之fluent API的使用

    该方法为Apache HttpClient 4.5以上的版本支持,在官网有明确的说明. 对比以前的方式,其优点是代码更简洁,同时为线程安全的.仅举一个最简单的post栗子 JAR包信息: <de ...

  6. [洛谷P2459] SDOI2011 消耗战

    问题描述 在一场战争中,战场由n个岛屿和n-1个桥梁组成,保证每两个岛屿间有且仅有一条路径可达.现在,我军已经侦查到敌军的总部在编号为1的岛屿,而且他们已经没有足够多的能源维系战斗,我军胜利在望.已知 ...

  7. BZOJ 1492: [NOI2007]货币兑换Cash 斜率优化 + splay动态维护凸包

    Description 小Y最近在一家金券交易所工作.该金券交易所只发行交易两种金券:A纪念券(以下简称A券)和 B纪念券(以下 简称B券).每个持有金券的顾客都有一个自己的帐户.金券的数目可以是一个 ...

  8. 如何添加筛选器 (Reporting Services)

    如果您希望在计算或显示时包含或排除特定值,可向数据集.数据区域或组添加筛选器.在运行时应用筛选器的顺序为:先对数据集,再对数据区域,最后对组,并按照组层次结构自上而下的顺序.在表.矩阵或列表中,对行组 ...

  9. ssd_mobilenet_demo

    操作系统:windows 10  64位 内存:8G GPU:Nvidia MX 150 Tensorflow: 1.4 1.安装python Anaconda3-5.0.1 ,默认python版本( ...

  10. MapGISK9安装

    数据下载 单击SQL-->单击显示SQL语句 单击确定,提示不可识别符号,给字段添加''