C#简单实现office转pdf、pdf转图片
(2013-02-22 17:04:24)
标签:
中文文件名物理打印机名称 |
分类: .net |
最简单有效的办法: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.dll,IKVM.GNU.Classpath.dll,IKVM.Runtime.dll,PDFBox-0.7.3.dll,其中IKVM.GNU.Classpath.dll,PDFBox-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存放路径不要带有中文;

加载中…