加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C#简单实现office转pdf、pdf转图片

(2013-02-22 17:04:24)
标签:

中文

文件名

物理

打印机

名称

分类: .net
C#简单实现office转pdf、pdf转图片

最简单有效的办法:office -> pdf 应用Adobe Acrobat 8 Pro的一个PDFMakerAPI.dll程序集;pdf -> png(jpg,gif...)应用Ghostscript。下面详述说明:

一、准备工作:

1.安装Adobe Acrobat 8 Pro,本人安装的是8.1.2版本,在你的安装目录下(例如我自己的:C:\Program Files\Adobe\Acrobat 8.0\PDFMaker\Common\)common目录中找到PDFMakerAPI.dll程序集,拷贝出到项目中放DLL的文件夹(此文件夹为用户保存DLL文件的文件夹,名称以自己项目为准),并在项目里对其添加引用。

2.安装Ghostscript,本人安装的是8.63版本,需要用的的其他DLL:FontBox-0.1.0-dev.dllIKVM.GNU.Classpath.dllIKVM.Runtime.dllPDFBox-0.7.3.dll其中IKVM.GNU.Classpath.dllPDFBox-0.7.3.dll在项目里对其添加引用,其他两个(4个dll均放到)放到DLL文件夹里即可。

3.Ghostscript配置Web.config:


C:/Program Files/gs/gs8.63/bin"/>

找到自己对应的Ghostscript安装目录,自行修改。

二、应用:

1.office -> pdf

引用命名空间:using PDFMAKERAPILib;关键代码如下:

1
2
3
4
5
6
7
8
///
///参数:docfile,源office文件绝对路径及文件名(C:\office\myDoc.doc);printpath,pdf文件保存路径(D:\myPdf);printFileName,保
///存pdf文件的文件名(myNewPdf.pdf)
///
objectmissing = System.Type.Missing;
PDFMakerAppapp = new PDFMakerApp();
app.CreatePDF(docfile, printpath + printFileName, PDFMakerSettings.kConvertAllPages, false, true, true, missing);

2.pdf-> 图片

引用命名空间:using org.pdfbox.pdmodel;关键代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
///
/// PDF文档物理路径
/// 转换成的图片文件的存放物理路径
///
public static void PdfToImages(string pdfFile, string imgPath)
{
PDDocument doc = PDDocument.load(pdfFile);
int pageCount = doc.getDocumentCatalog().getAllPages().size();//计算pdf文档的总页数
string pdfFileName = Path.GetFileName(pdfFile);
int index = pdfFileName.LastIndexOf('.');
if (index != -1)
pdfFileName = pdfFileName.Substring(0, index);
string imgFile = Path.Combine(imgPath, pdfFileName);//转换成的图片文件
if (pageCount == 0) return;
if (pageCount == 1)
{
imgFile += ".png";
if (File.Exists(imgFile))
{
File.Delete(imgFile);
}
}
else
{
for (int i = 0; i < pageCount; i++)
{
string _imgFile = imgFile + (i + 1).ToString() + ".png";
if (File.Exists(_imgFile))
{
File.Delete(_imgFile);
}
}
imgFile += "%d.png";
}
ProcessStartInfo info = new ProcessStartInfo();
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Hidden;
info.WorkingDirectory = System.Configuration.ConfigurationManager.AppSettings["GhostScriptView"];
info.Arguments = System.Configuration.ConfigurationManager.AppSettings["GhostScriptArguments"] + @" -sOutputFile=" + imgFile + " " + pdfFile;
info.FileName = @"gswin32c.exe";
Process subProcess = new Process();
subProcess.StartInfo = info;
subProcess.Start();
subProcess.WaitForExit(int.MaxValue);
}

完成上述几步即可简便完美的完成office到彩色图片的转换,大家不妨也试试。

3.总结和说明:

Acrobat 8 Pro需要激活和注册;

Acrobat 8 Pro生成pdf的时候会有自己的虚拟打印机弹出框,当office文件为ppt或者xls的时候会打开文件然后再关闭,doc则不会;

office转换的pdf存放路径不要带有中文

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有