通过使用Aspose您可以轻松的将您的文档转换成真正的图片格式,最好的保证您的内容将实际可见,与其他格式相比,它并不存在查看工具的安装问题。
准备工作:
1:下载Aspose组件包:http://download.csdn.net/detail/laoge/6931819
编写代码:
核心代码AsposeFileToImg,以下代码在文档页数超过100以上生成会变慢,页数越大生成越慢,在实际使用中请注意。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
using System.Reflection;
using System.Threading;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Diagnostics;
using Aspose.Cells; namespace PdfOrImg
{
/// <summary>
/// 功能:
/// pdf,doc,docx,ppt,pptx,xls,xlsx文件转图片
/// 在当前文件下创建一个以文件名命名的文件夹,该文件夹的保存的是该文件生成是页图片
/// </summary>
public class AsposeFileToImg
{
private static string imageDirectoryPath = "";
public static void FileToImg(string filePath)
{
if (File.Exists(filePath))
{
FileInfo pdfFi = new FileInfo(filePath);
string filename = pdfFi.Name.Replace(pdfFi.Extension, "");
imageDirectoryPath = System.IO.Path.Combine(pdfFi.DirectoryName, filename);
if (!Directory.Exists(imageDirectoryPath))
{
Directory.CreateDirectory(imageDirectoryPath);
}
string a = Path.GetExtension(filePath).ToLower();
if (a == ".pdf")
{
PdfToImg(filePath);
}
else
{
if (a == ".doc" || a == ".docx")
{
DocToImg(filePath);
}
else
{
if (a == ".ppt")
{
PptToImg(filePath);
}
else if (a == ".pptx")
{
PptxToImg(filePath);
}
else
{
if (a == ".xls" || a == ".xlsx")
{
XlsToImg(filePath);
}
}
}
}
}
}
private static void PdfToImg(string filePath)
{
string filename = Path.GetFileNameWithoutExtension(filePath).ToLower();
FileStream docStream = new FileStream(filePath, FileMode.Open);
var pdf = new Aspose.Pdf.Document(docStream);
for (int i = 1; i < pdf.Pages.Count + 1; i++)
{
try
{
string imgpath = imageDirectoryPath + "/" + filename + "_" + i + ".jpg";
if (!File.Exists(imgpath))
{
using (FileStream imageStream = new FileStream(imgpath, FileMode.Create))
{
Aspose.Pdf.Devices.Resolution resolution = new Aspose.Pdf.Devices.Resolution(300);
Aspose.Pdf.Devices.JpegDevice jpegDevice = new Aspose.Pdf.Devices.JpegDevice(resolution, 100); jpegDevice.Process(pdf.Pages[i], imageStream);
imageStream.Close();
}
}
}
catch (Exception)
{ }
}
}
private static void DocToImg(string filePath)
{
string filename = Path.GetFileNameWithoutExtension(filePath).ToLower();
var words = new Aspose.Words.Document(filePath); Aspose.Words.Saving.ImageSaveOptions imageSaveOptions =
new Aspose.Words.Saving.ImageSaveOptions(Aspose.Words.SaveFormat.Jpeg);
imageSaveOptions.Resolution = 128; int pageindex = 0;
int pagecount = words.PageCount;
for (int i = 1; i < pagecount + 1; i++)
{
try
{
string imgpath = imageDirectoryPath + "/" + filename + "_" + i + ".jpg";
if (!File.Exists(imgpath))
{
imageSaveOptions.PageIndex = pageindex;
words.Save(imgpath, imageSaveOptions);
pageindex++;
}
}
catch (Exception)
{ }
}
}
private static void PptToImg(string filePath)
{
string filename = Path.GetFileNameWithoutExtension(filePath).ToLower();
var ppt = new Aspose.Slides.Presentation(filePath);
string imgpath = imageDirectoryPath + "/" + filename + ".pdf";
if (!File.Exists(imgpath))
{
ppt.Save(imgpath, Aspose.Slides.Export.SaveFormat.Pdf);
}
PdfToImg(imgpath);
}
private static void PptxToImg(string filePath)
{
string filename = Path.GetFileNameWithoutExtension(filePath).ToLower();
var ppt = new Aspose.Slides.Pptx.PresentationEx(filePath);
string imgpath = imageDirectoryPath + "/" + filename + ".pdf";
if (!File.Exists(imgpath))
{
ppt.Save(imgpath, Aspose.Slides.Export.SaveFormat.Pdf);
}
PdfToImg(imgpath);
}
private static void XlsToImg(string filePath)
{
string filename = Path.GetFileNameWithoutExtension(filePath).ToLower();
Workbook book = new Workbook(filePath);
//创建一个图表选项的对象
Aspose.Cells.Rendering.ImageOrPrintOptions imgOptions = new Aspose.Cells.Rendering.ImageOrPrintOptions();
imgOptions.ImageFormat = ImageFormat.Jpeg;
int count = book.Worksheets.Count;
for (int i = 0; i < count; i++)
{
//获取一张工作表
Worksheet sheet = book.Worksheets[i];
//创建一个纸张底色渲染对象
Aspose.Cells.Rendering.SheetRender sr = new Aspose.Cells.Rendering.SheetRender(sheet, imgOptions);
for (int j = 0; j < sr.PageCount; j++)
{
string imgpath = imageDirectoryPath + "/" + filename + "_" + i + "_" + j + "_.jpg";
if (!File.Exists(imgpath))
{
sr.ToImage(j, imgpath);
}
}
}
}
}
}
调用代码:
using System;
using System.IO;
using System.Collections; namespace PdfOrImg
{
//Adobe Acrobat9.0
class Program
{
static void Main(string[] args)
{
Console.WriteLine("========文件转图片开始========");
try
{ ArrayList alist = new ArrayList();
alist.Add("temp_pdf.pdf"); alist.Add("temp_ppt.ppt");
alist.Add("temp_pptx.pptx"); alist.Add("temp_doc.doc");
alist.Add("temp_docx.docx"); alist.Add("temp_xls.xls");
alist.Add("temp_xlsx.xlsx"); for (int i = 0; i < alist.Count; i++)
{
try
{
string pdfFilePath = alist[i].ToString();
FileInfo pdfFi = new FileInfo(pdfFilePath);
string filepath = pdfFi.FullName; Console.WriteLine("正在转换" + pdfFilePath + "文件...");
AsposeFileToImg.FileToImg(filepath);
}
catch (Exception)
{ }
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
Console.WriteLine("========文件转图片结束========");
Console.Read(); } }
}
运行情况:
根据文档名称建立同名的文件夹,并在文件夹中存放文档每一页的图片,图片命名格式:文件名_页码.jpg 效果如下:
获取代码:
http://download.csdn.net/detail/luomingui/9151083
利用Aspose文档转图片的更多相关文章
-
利用iTextSharp组件给PDF文档添加图片水印,文字水印
最近在做关于PDF文档添加水印的功能,折腾了好久,终于好了.以下做个记录: 首先会用到iTextSharp组件,大家可以去官网下载,同时我也会在本文中附加进来. 代码中添加引用为: using S ...
-
Java解析word,获取文档中图片位置
前言(背景介绍): Apache POI是Apache基金会下一个开源的项目,用来处理office系列的文档,能够创建和解析word.excel.ppt格式的文档. 其中对word文档的处理有两个技术 ...
-
C#向PPT文档插入图片以及导出图片
PowerPoint演示文稿是我们日常工作中常用的办公软件之一,而图片则是PowerPoint文档的重要组成部分,那么如何向幻灯片插入图片以及导出图片呢?本文我将给大家分享如何使用一个免费版Power ...
-
判断pdf、word文档、图片等文件类型(格式)、大小的简便方法
判断pdf.word文档.图片等文件类型(格式).大小的简便方法 很久没发文了,今天有时间就写一下吧. 关于上传文件,通常我们都需要对其进行判断,限制上传的类型,如果是上传图片,我们甚至会把图片转化成 ...
-
C# 替换Word文本—— 用文档、图片、表格替换文本
编辑文档时,对一些需要修改的字符或段落可以通过查找替换的方式,快速地更改.在C# 在word中查找及替换文本一文中,主要介绍了在Word中以文本替换文本的方法,在本篇文章中,将介绍如何用一篇Word文 ...
-
富文本粘贴word文档内容图片处理
公司做的项目要用到文本上传功能. 网上找了很久,大部分都有一些不成熟的问题,终于让我找到了一个成熟的项目. 下面就来看看: 1.打开工程: 对于文档的上传我们需要知道这个项目是否符合我们的初衷. 运行 ...
-
向Docx4j生成的word文档添加图片和布局--第一部分
原文标题:Adding images and layout to your Docx4j-generated word documents, part 1 原文链接:http://blog.iprof ...
-
PDF文档转换为图片、图片转成PDF 及PDF合并
简介 功能:PDF文档按每页转换成一张图片,一张图片转换成一张PDF 并将多张PDF合成一个多页的PDF文档. 经历:在各个网站上搜索始终出现各种问题,尤其是遇到引用的版本问题尤其头疼,不是不能适用当 ...
-
icepdf和pdfbox转pdf文档为图片
icepdf转pdf文档为图片 首先导入icepdf jar包或maven pdfPath为pdf文件路径.pdfimgpsth为图片保存的路径 public static void icePdfIm ...
随机推荐
- 鸟哥的linux私房菜学习记录之软件安装RPM,SRPM,YUM
-
Oracle 11g 中恢复管理器RMAN介绍
这是我平时摘录的笔记,从管理艺术那本书上摘录出来的,放到这里 RMAN 可在数据库服务器的帮助下从数据库内备份数据文件,可构造数据文件映像副本.控制文件和控制文件映像.对当日志 SPFILE 和RMA ...
-
使用Lucene.Net实现全文检索
使用Lucene.Net实现全文检索 目录 一 Lucene.Net概述 二 分词 三 索引 四 搜索 五 实践中的问题 一 Lucene.Net概述 Lucene.Net是一个C#开发的开源全文索引 ...
-
js判断浏览器滚动条是否拉到底
$(window).scroll(function(){ // 当滚动到最底部以上n像素时, 加载新内容 if ($(document).height() - $(this).scrollTop() ...
-
jquery的return this.each()的作用
经常看到在运用jquery插件绑定事件时候,都会用到each. 下面来比较下使用return this和return this.each()在使用的区别. 注意:使用each的时候引用this,必须使 ...
-
XMPP and SIP
过去一年多,一直关注这方面的技术和发展,这里有一个简单的介绍,我觉得比较简洁明了.我做了一点翻译,还有我的一些评估. SIP vs XMPP (Jabber) SIP and XMPP a ...
-
Bootstrap入门(十八)组件12:徽章与巨幕
Bootstrap入门(十八)组件12:徽章与巨幕 1.徽章 2.巨幕 1.徽章 给链接.导航等元素嵌套 <span class="badge"> 元素,可以很醒目的展 ...
-
数据库DDL操作
DDL1. 数据库* 查看所有数据库:SHOW DATABASES* 切换(选择要操作的)数据库:USE 数据库名* 创建数据库:CREATE DATABASE [IF NOT EXISTS] myd ...
-
ffmpeg快速获取视频截图
使用ffmpeg可以非常方便的生成视频截图,命令行下的mplayer也可以做视频截图,只不过mplayer在本质上还是调用ffmpeg来实现.ffmpeg 通过指定 -vcodec 参数为 mjpeg ...
-
PL SQL基本内容(原创)
本节介绍PL SQL的基本内容 本节所举示例数据来源oracle用户scott下的emp表和dept表,数据如下: 一.plsql简介: 1.概念:procedural language,过程化sql ...