WPF解析PDF为图片
2024-08-25 14:46:18
偶遇需要解析PDF文件为单张图,此做,
http://git.oschina.net/jiailiuyan/OfficeDecoder
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Aspose.Pdf.Devices; namespace Helpers
{
public static class PDFHelper
{ /// <summary> 转换 PDF 的每一页为图片 </summary>
/// <param name="pdffile"></param>
/// <param name="savedirectory"></param>
/// <returns></returns>
public static List<string> ConvertToImages(string pdffile, string savedirectory = "")
{
// 返回的图片绝对路径集合
List<string> images = new List<string>(); // 获取 PDF 文件名称
var pdfname = System.IO.Path.GetFileNameWithoutExtension(pdffile); // 如果指定了保存路径,则使用传入的路径,否则在 PDF 文件的同级创建同名文件夹当作保存路径
savedirectory = string.IsNullOrWhiteSpace(savedirectory) ? System.IO.Path.GetDirectoryName(pdffile) : savedirectory;
savedirectory = System.IO.Path.Combine(savedirectory, pdfname);
// 防止保存的路径不存在因此创建保存文件夹
Directory.CreateDirectory(savedirectory); using (var pdfd = new Aspose.Pdf.Document(pdffile))
{
var count = pdfd.Pages.Count;
// Aspose.Pdf 的单页获取索引从 1 开始
for (int i = ; i <= count; i++)
{
var imagefile = System.IO.Path.Combine(savedirectory, i + ".jpg");
try
{
//图片处理后的存放路径
using (var imageStream = new FileStream(imagefile, FileMode.Create))
{
var resolution = new Resolution();
var jpegDevice = new JpegDevice(resolution, );
jpegDevice.Process(pdfd.Pages[i], imageStream);
imageStream.Close(); images.Add(imagefile);
}
}
catch { }
}
pdfd.Dispose();
} // 返回获取图片后的路径集合
return images;
} }
}
最新文章
- 轻松掌握:JavaScript状态模式
- Maven进价:Maven构建系列文章
- apply,call,bind的区别
- SELECT &#39;www&#39; = 0; 1
- DFS入门之一
- Seasar2框架:AOP
- Smarty环境配置
- BZOJ 1877 晨跑
- JS操作URL
- IOS 表视图(UITableVIew)的使用方法(8)表视图的编辑功能(多选)
- 8天玩转并行开发——第八天 用VS性能向导解剖你的程序
- UVA - 437 The Tower of Babylon(dp-最长递增子序列)
- 会话控制之session和cookie(20161107)
- JS实现鼠标悬浮,显示内容
- DAY02、正式介绍python
- vue中使用axios最详细教程
- SQL(ORACLE)
- legend2---开发日志4(常用的链接传值方式有哪些)
- CUDA cufftPlanMany的用法_31通道32*8像素的FFT
- python日常