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水印分为两种:文本水印和图片水印.文本水印一般被用在商业领域,提醒读者该文档是受版权保护的,其他人不能抄袭或者免费使用.除了这个特征,水印还可以用来标记这个文档 的一些基 ...
随机推荐
- 6-基于TMS320C6678、FPGA XC5VSX95T的6U CPCI 8路光纤信号处理卡
基于TMS320C6678.FPGA XC5VSX95T的6U CPCI 8路光纤信号处理卡 1.板卡概述 本板卡由我公司自主研发,基于CPCI架构,符合CPCI2.0标准,采用两片TI DSP T ...
- more 分页显示文件内容
1.命令功能 more 分页显示文件内容 2.语法格式 more option file 参数说明 参数 参数说明 -num 指定屏幕显示大小为num行 +num 从行号num号开始显示 -s 把连 ...
- selenium鼠标悬停失效,用js语句模拟
写脚本时,有很多case需要要用的鼠标悬停出菜单 用到了ActionChains(self.driver).move_to_element(el).perform(),但是脚本写完以后,单个case执 ...
- 修改图片尺寸网站https://www.yasuotu.com/
修改图片尺寸网站https://www.yasuotu.com/
- Spring的事物原理
在Spring中把非功能性的事物管理代码以切面的形式进行管理,只需要声明事物即可启用事物管理. 本质:最终执行的还是java.sql.Connection的setAutoCommit(),commit ...
- 容器(collection)初步
容器(集合)的分类: 泛型(generic):本质是数据类型的参数化(提前告诉编译器,在调用泛型时必须传入实际类型) 例:E即为在主函数中定义的传入的实际类型 class MyCollection&l ...
- frugally-deep: Header-only library for using Keras models in C++
// Convenience wrapper around predict for models with // single tensor outputs of shape (1, 1, 1), / ...
- Test 6.29 T2 染色
问题描述 于是 CJK 轻轻松松就切了第一题."好,那么来看看第二题吧." JesseLiu 大手一挥,CJK 眼前立刻出现了一棵有 n 个节点的树."现在,你将要为这颗 ...
- SQL Server查询使用键查找时锁申请及释放顺序
当然看的过程中,其实自己有个疑问: 对于键查找这类查询,会申请哪些锁,锁申请和释放的顺序是怎样的? 准备 备注:测试表仍然使用高兄文中创建的测试表testklup 在开始之前,使用dbcc ind 命 ...
- python 3.6连接数据库(pymysql方式)
pymysql 模块可以通过 pip 安装.但如果你使用的是 pycharm IDE,则可以使用 project python 安装第三方模块. [File] >> [settings] ...