http://www.2cto.com/kf/201110/107592.html

国庆放假前,公司有个项目里要用到office、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.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:

<appSettings>
    <add key="GhostScriptView" value="C:/Program Files/gs/gs8.63/bin"/>
    <add key="GhostScriptArguments" value="-dSAFER -dBATCH -dNOPAUSE -r150 -sDEVICE=jpeg -dGraphicsAlphaBits=4"/>
</appSettings>

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

二、应用:

1.office -> pdf

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

1 ///

2 ///参数:docfile,源office文件绝对路径及文件名(C:\office\myDoc.doc);printpath,pdf文件保存路径(D:\myPdf);printFileName,保

3 ///存pdf文件的文件名(myNewPdf.pdf)

4 ///

5

6  objectmissing = System.Type.Missing;

7  PDFMakerAppapp = new PDFMakerApp();

8  app.CreatePDF(docfile, printpath + printFileName, PDFMakerSettings.kConvertAllPages, false, true, true, missing);

2.pdf-> 图片

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

01 ///

02 /// <param name="pdfFile">PDF文档物理路径</param>

03 /// <param name="imgPath">转换成的图片文件的存放物理路径</param>

04 ///

05        public static void PdfToImages(string pdfFile, string imgPath)

06         {

07             PDDocument doc = PDDocument.load(pdfFile);

08             int pageCount = doc.getDocumentCatalog().getAllPages().size();//计算pdf文档的总页数

09

10             string pdfFileName = Path.GetFileName(pdfFile);

11             int index = pdfFileName.LastIndexOf('.');

12             if (index != -1)

13                 pdfFileName = pdfFileName.Substring(0, index);

14

15             string imgFile = Path.Combine(imgPath, pdfFileName);//转换成的图片文件

16

17             if (pageCount == 0) return;

18             if (pageCount == 1)

19             {

20                 imgFile += ".png";

21                 if (File.Exists(imgFile))

22                 {

23                     File.Delete(imgFile);

24                 }

25             }

26             else

27             {

28                 for (int i = 0; i < pageCount; i++)

29                 {

30                     string _imgFile = imgFile + (i + 1).ToString() + ".png";

31                     if (File.Exists(_imgFile))

32                     {

33                         File.Delete(_imgFile);

34                     }

35                 }

36                 imgFile += "%d.png";

37             }

38

39             ProcessStartInfo info = new ProcessStartInfo();

40             info.CreateNoWindow = true;

41             info.WindowStyle = ProcessWindowStyle.Hidden;

42             info.WorkingDirectory = System.Configuration.ConfigurationManager.AppSettings["GhostScriptView"];

43             info.Arguments = System.Configuration.ConfigurationManager.AppSettings["GhostScriptArguments"] + @" -sOutputFile=" + imgFile + "  " + pdfFile;

44             info.FileName = @"gswin32c.exe";

45             Process subProcess = new Process();

46             subProcess.StartInfo = info;

47             subProcess.Start();

48             subProcess.WaitForExit(int.MaxValue);

49         }

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

3.总结和说明:

Acrobat 8 Pro需要激活和注册;

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

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

最后:如有程序安装包和DLL需求消息我就可以了,祝大家工作愉快

摘自:小宝LOVE继艾斯

http://blog.csdn.net/musical_insect/article/details/5765098

在网上找遍了有关 C# 如何将PDF文档转换成图片的资料,最终在CSDN上面得到了一位高手的指点,根据他的指点,我做了这个项目,希望这个项目能对和我之前有同样需求的人有所帮助!

1、项目中用到了GhostScript,有关GhostScript的详细说明,请参考:http://downloads.sourceforge.net/ghostscript/gs861w32.exe?modtime=1196280996&big_mirror=1

2、在运行本项目前,你必须确保在本地计算机上已安装GhostScript,至于GhostScript的安装目录你可随意选择,但在项目中的配置文件中的<add key="GhostScriptView" value="C:/Program Files/gs/gs8.71/bin"/>也要和你的安装目录同步。

3、根目录中的 gs871w32.exe 为 GhostScript 安装文件,可直点击安装到本地计算机。

4、根目录中还有 IKVM.GNU.Classpath.dll、PDFBox-0.7.3.dll、IKVM.Runtime.dll、FontBox-0.1.0-dev.dll 这四个程序集文件,它们是PDFBox(有关PDFBox的详细说明请参考:http://sourceforge.net/projects/pdfbox/)中的程序集文件,主要用于辅助操作pdf文档,因为使用PDFBox将PDF文档转为图片的.net版本目前还有些BUG,所以在项目中用了GhostScript来实现转换。请将 IKVM.GNU.Classpath.dll、PDFBox-0.7.3.dll引入项目中,再把 IKVM.Runtime.dll、FontBox-0.1.0-dev.dll置于运行目录下,具体请看项目及其代码。

项目很简单,下面贴出了主要的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Text;
using System.Diagnostics;
using org.pdfbox.util;
using org.pdfbox.pdmodel;

#region 转换PDF文档

/// <summary>
        /// 将PDF文档转换成文本
        /// </summary>
        /// <param name="pdfFile">PDF文档物理路径</param>
        /// <returns>返回从PDF文档剥离的文本</returns>
        public string PdfToText(string pdfFile)
        {
            PDDocument doc = PDDocument.load(pdfFile);
            PDFTextStripper stripper = new PDFTextStripper();
            return stripper.getText(doc);
        }

/// <summary>
        /// 将PDF文档转换成图片
        /// </summary>
        /// <param name="pdfFile">PDF文档物理路径</param>
        /// <param name="imgPath">转换成的图片文件的存放物理路径</param>
        /// <param name="isDeletePDF">转换成图片文件以后是否删除原PDF文档</param>
        /// <returns>返回转换成的图片文件物理路径的集合</returns>
        public IList<string> PdfToImages(string pdfFile, string imgPath, bool isDeletePDF)
        {
            IList<string> imgList = new List<string>();
            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 null;
            if (pageCount == 1)
            {
                imgFile += ".jpg";
                imgList.Add(imgFile);
                if (File.Exists(imgFile)) File.Delete(imgFile);
            }
            else
            {
                for (int i = 0; i < pageCount; i++)
                {
                    string _imgFile = imgFile + (i + 1).ToString() + ".jpg";
                    imgList.Add(_imgFile);
                    if (File.Exists(_imgFile)) File.Delete(_imgFile);
                }
                imgFile += "%d.jpg";
            }

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);
            if (isDeletePDF)
            {
                File.Delete(pdfFile);
            }

return imgList;
        }

#endregion

代码中会用到的配置信息:

<appSettings>
  <add key="GhostScriptView" value="C:/Program Files/gs/gs8.71/bin"/>
  <add key="GhostScriptArguments" value="-dSAFER -dBATCH -dNOPAUSE -r150 -sDEVICE=jpeg -dGraphicsAlphaBits=4"/>
 </appSettings>

简单吧,下面请看看本项目运行的效果图:

注:完整项目解决方案我已上传为资源,欢迎大家前去下载使用!

C#简单实现office转pdf、pdf转图片相关推荐

  1. Java使用jacob完成office文档pdf转换

    Java使用jacob完成office文档pdf转换 #简单介绍jacob jacob是java使用微软工具的一个工具 下载地址 http://sourceforge.net/projects/jac ...

  2. Qt显示pdf系列2——QAxWidget打开Office文件及pdf

    序 一QAxwidget操作office 二QAxwidget操作pdf 三总结  承接上章,该扯皮的扯完了,直接进入正题: 序  顾名思义,这篇先介绍下QAxwidget来操作office和pdf ...

  3. ABBYY在MS Office中创建PDF文件的方法

    2019独角兽企业重金招聘Python工程师标准>>> ABBYY PDF Transformer+是一款可创建.编辑及将PDF文件转换为其他可编辑格式的OCR图文识别软件,不仅可以 ...

  4. Office文档上传后实时转换为PDF格式_图片文件上传后实时裁剪_实现在线预览Office文档

    Office文档上传后实时转换为PDF格式_图片文件上传后实时裁剪 前置条件 安装LibreOffice 安装OpenOffice 安装Unoconv 安装ImageMagick.x86_64 安装G ...

  5. python office转pdf_python 如何将office文件转换为PDF

    在平时的工作中,难免需要一些 小Tip 来解决工作中遇到的问题,今天的文章给大家安利一个方便快捷的小技巧,将 Office(doc/docx/ppt/pptx/xls/xlsx)文件批量或者单一文件转 ...

  6. 转https_PDF怎么转成JPG最简单?分享免费的PDF转图片方法

    PDF怎么转成JPG最简单?能够独立完成PDF文件转换是我们日常工作中需要掌握的一项技能,PDF转换方面就有PDF转Word.PDF转PPT.PDF转图片等,也包括Word转PDF.PPT转PDF.图 ...

  7. Web方式预览Office/Word/Excel/pdf文件解决方案

    Web方式预览Office/Word/Excel/pdf文件解决方案 参考文章: (1)Web方式预览Office/Word/Excel/pdf文件解决方案 (2)https://www.cnblog ...

  8. python win32转pdf 横版_Python调用Win32com实现Office批量转PDF

    Python调用Win32com实现Office批量转PDF 需求 一直以来有将诸如Word之类的Office文档转为PDF的需求,此前的方法是挨个打开文档,手动另存为PDF,此方法费时费力,尤其在电 ...

  9. office文件转换为pdf文件

    office文件转换为pdf文件 首先安装openoffice,自行百度 导入jar包,自行百度 引入坐标: <!-- 转pdf配置 --><dependency><gr ...

  10. python office转pdf linux_python 如何将office文件转换为PDF

    在平时的工作中,难免需要一些 小Tip 来解决工作中遇到的问题,今天的文章给大家安利一个方便快捷的小技巧,将 Office(doc/docx/ppt/pptx/xls/xlsx)文件批量或者单一文件转 ...

最新文章

  1. Android AndFix热补丁动态修复框架使用教程
  2. 关于loader asyncTaskLoader AsyncTask的理解
  3. 机器学习算法Python实现:基于情感词典的文本情感分析
  4. softmax理论及代码解读——UFLDL
  5. nginx.conf配置详解
  6. 如何先执行input (checkbox,radio)再执行函数
  7. LRU和LFU的区别
  8. 第一章 CLR执行模型
  9. iptables实现防火墙及NAT的基本功能----视频下载
  10. 511遇见易语言大漠多线程模块教程(1-12课)
  11. GC算法精解(分代搜集算法)
  12. 思路分享——hdu 3233
  13. 《Detecting Adversarial Examples through Image Transformation》和CW attack的阅读笔记
  14. 应用于音箱领域中的音频功放IC型号推荐
  15. 学it需要学历吗_低学历者是否适合学IT?IT行业对学历要求高吗
  16. SpringBoot学习-Day1
  17. 【酸甜苦辣】记迭代一的酸甜苦辣(妍喆篇)
  18. 阿里CTO王坚:商业进化的四个关键词
  19. keil c支持汇编语言吗,keil中用汇编实现hello.c的功能
  20. MCDF实验_lab1(1)

热门文章

  1. 如何让“后浪”热爱工作,来自“前浪”的十大拷问
  2. Python寻找数组中重复数字
  3. 洛谷 U80415 懒懒的Seaway
  4. 程序员经常去的编程教学视频网站
  5. Echarts 用GeoJson数据绘制地图
  6. 波粒二象性仿真理论(一) Wave Particle Duality Principle
  7. 服务器解压gz文件命令,gz解压(手机怎么解压gz文件)
  8. 计算机管理服务无法显示,打印机属性无法打开,始终显示: 无法显示计算机属性. 后台打印程序服务未运行....
  9. 2023年上半年信息系统项目管理师考试时间你知道吗?
  10. 目标建立——SMART法则