C# PDF文件转图片
参考: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文件转图片的更多相关文章
- 【使用Itext处理PDF文档(新建PDF文件、修改PDF文件、PDF中插入图片、将PDF文件转换为图片)】
iText简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文件转 ...
- JavaWeb项目生成PDF文件添加水印图片并导出
一.前言 首先需要在Maven中添加相应的jar包依赖,若项目没用到Maven,也可自行下载相应所需的jar包(itextpdf.jar 与 itext-asian.jar),如下图所示.点此下载 M ...
- C#如何在PDF文件添加图片印章
文档中添加印章可以起一定的作用,比如,防止文件随意被使用,或者确保文档内容的安全性和权威性.C#添加图片印章其实也有很多实现方法,这里我使用的是免费的第三方软件Free Spire.PDF,向大家阐述 ...
- Java给图片和PDF文件添加水印(图片水印和文字水印)
有时候我们看到的图片或者PDF文件会自动加上水印.分为文字水印和图片水印. ----------------------------图片水印---------------------------- 1 ...
- 使用Python爬取微信公众号文章并保存为PDF文件(解决图片不显示的问题)
前言 第一次写博客,主要内容是爬取微信公众号的文章,将文章以PDF格式保存在本地. 爬取微信公众号文章(使用wechatsogou) 1.安装 pip install wechatsogou --up ...
- 用 ghostscript 转化PDF文件为图片 的参数设置
example: gswin32 -dSAFER -dBATCH -dNOPAUSE -r300 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -sDEVICE=jp ...
- 前端PDF文件转图片方法
第一步:先下载pdfjs,网址:PDF下载地址,再引入到项目中,我是标签直接引用的 <script src="pdfjs/build/pdf.js"></scri ...
- 利用icepdf将pdf文件转为图片
所需jar 包为icepdf-core.jar.icepdf-extra.jar.icepdf-pro-intl.jar.icepdf-pro.jar和icepdf-viewer.jar. 示例代码如 ...
- C# 给PDF文件添加水印
水印种类及功能介绍 PDF水印分为两种:文本水印和图片水印.文本水印一般被用在商业领域,提醒读者该文档是受版权保护的,其他人不能抄袭或者免费使用.除了这个特征,水印还可以用来标记这个文档 的一些基 ...
随机推荐
- 部署Tomcat服务器
部署Tomcat服务器,具体内容如下: 1.安装部署JDK基础环境; 2.安装部署Tomcat服务器; 3.创建JSP测试页面,文件名为test.jsp,显示服务器当前时间. 然后客户机访问Web服务 ...
- JavaScript 工作原理之十-使用 MutationObserver 监测 DOM 变化
原文请查阅这里,略有删减,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland. 本系列持续更新中,Github 地址请查阅这里. 这是 JavaScript 工作原理的第十章. 网络 ...
- SpringBoot---事务支持
1.自动配置的事务管理器 1.1.使用JDBC 作为 数据访问技术 时,SpringBoot 为我们 定义了 PlatformTransactionManager的实现 DataSourc ...
- ssh服务配置
------------------------------------------ ssh 服务安装ssh apt-get install openssh-server启动 service ssh ...
- hdu 6053: TrickGCD (2017 多校第二场 1009) 【莫比乌斯 容斥原理】
题目链接 定义f[n]表示n是最大公约数情况下的计数,F[n]为n是公约数情况下的计数 (可以和 http://www.cnblogs.com/Just--Do--It/p/7197788.html ...
- Django的使用一
Django是一个由Python写成的Web应用框架,是 Python 社区的两大最受欢迎的 Web 框架之一(另一个是 Flask). Django的主要目的是简便.快速的开发数据库驱动的网站. 1 ...
- linux运维、架构之路-HTTP服务
一.HTTP协议 1.介绍 HTTP协议,全称HyperText Transfer Protocol,中文名为超文本传输协议,是互联网中最常用的一种网络协议.HTTP协议是互联网上常用的通信协议之一. ...
- visual studio 编译报错:未能向文件“....csproj.FileListAbsolute.txt”写入命令行,对路径的访问被拒绝
在网上开始查找出错的解决方法,终于找到了,原来解决方法这么简单,当初以为是权限的问题,后来发现不是权限问题,在VSS中比以前多了两个目录“bin”和“obj”,可能是有人上传的时候将这两个文件夹一起上 ...
- php next()函数 语法
php next()函数 语法 作用:将内部指针指向数组中的下一个元素,并输出.直线电机滑台 语法:next(array) 参数: 参数 描述 array 必需.规定要使用的数组. 说明:在返回值之前 ...
- Queue1循环队列
循环队列 1 #include<iostream> using namespace std; //#define maxSize 20 template <class T> c ...