本文采用Adobe Acrobat9.0的COM组件,将Pdf文件的每一页转换成对应的图片文件。

开发环境:VS2010,.Net Framework4.0,Adobe Acrobat9.0。

工程中添加COM引用:Adobe Acrobat 9.0 Type Library(必须装了Adobe Acrobat9.0才会有)。

思路:

1、需要用到的COM对象:

1)CAcroPDDoc:Acrobat文档对象。

2)CAcroPDPage:页对象。

3)CAcroRect:用来描述页中一个矩形区域的对象。

4)CAcroPoint:实际上代表的是Size。

2、转换过程:

1)打开文档。

2)取出每一页。

3)获取每一页的大小,生成一个表示该页的矩形区域。

4)将当前页的指定区域编码成图片,并且复制到剪贴板中。

5)将剪贴板中的图片取出,保存为图片文件。

转换函数代码:

        public static void ConvertPdf2Image(string pdfFilePath, string imageDirectoryPath,int beginPageNum, int endPageNum, ImageFormat format, double zoom = 1) {
            Acrobat.CAcroPDDoc pdfDoc = null;            Acrobat.CAcroPDPage pdfPage = null;            Acrobat.CAcroRect pdfRect = null;            Acrobat.CAcroPoint pdfPoint = null;

//1)            //生成操作Pdf文件的Com对象              pdfDoc = (Acrobat.CAcroPDDoc)Microsoft.VisualBasic.Interaction.CreateObject("AcroExch.PDDoc", "");

//检查输入参数              if (!pdfDoc.Open(pdfFilePath)) {throw new FileNotFoundException(string.Format("源文件{0}不存在!", pdfFilePath));            }

if (!Directory.Exists(imageDirectoryPath)) {                Directory.CreateDirectory(imageDirectoryPath);            }

if (beginPageNum <= 0) {                beginPageNum = 1;            }

if (endPageNum > pdfDoc.GetNumPages() || endPageNum <= 0) {                endPageNum = pdfDoc.GetNumPages();            }

if (beginPageNum > endPageNum) {throw new ArgumentException("参数\"beginPageNum\"必须小于\"endPageNum\"!");            }

if (format == null) {                format = ImageFormat.Png;            }

if (zoom <= 0) {                zoom = 1;            }

//转换              for (int i = beginPageNum; i <= endPageNum; i++) {//2)//取出当前页                  pdfPage = (Acrobat.CAcroPDPage)pdfDoc.AcquirePage(i - 1);

//3)//得到当前页的大小                   pdfPoint = (Acrobat.CAcroPoint)pdfPage.GetSize();//生成一个页的裁剪区矩形对象                   pdfRect = (Acrobat.CAcroRect)Microsoft.VisualBasic.Interaction.CreateObject("AcroExch.Rect", "");

//计算当前页经缩放后的实际宽度和高度,zoom==1时,保持原比例大小                   int imgWidth = (int)((double)pdfPoint.x * zoom);int imgHeight = (int)((double)pdfPoint.y * zoom);

//设置裁剪矩形的大小为当前页的大小                   pdfRect.Left = 0;                pdfRect.right = (short)imgWidth;                pdfRect.Top = 0;                pdfRect.bottom = (short)imgHeight;

//4)//将当前页的裁剪区的内容编成图片后复制到剪贴板中                  pdfPage.CopyToClipboard(pdfRect, 0, 0, (short)(100 * zoom));

//5)                IDataObject clipboardData = Clipboard.GetDataObject();

//检查剪贴板中的对象是否是图片,如果是图片则将其保存为指定格式的图片文件                  if (clipboardData.GetDataPresent(DataFormats.Bitmap)) {                    Bitmap pdfBitmap = (Bitmap)clipboardData.GetData(DataFormats.Bitmap);

                    pdfBitmap.Save(                        Path.Combine(imageDirectoryPath, i.ToString("0000") + "." + format.ToString()), format);

                    pdfBitmap.Dispose();                }            }

//关闭和释放相关COM对象              pdfDoc.Close();            Marshal.ReleaseComObject(pdfRect);            Marshal.ReleaseComObject(pdfPoint);            Marshal.ReleaseComObject(pdfPage);            Marshal.ReleaseComObject(pdfDoc);        }

代码:

http://download.csdn.net/download/kongxh_1981/9161481

网上有一篇搜集的非常全的将Pdf文件转换成图片的各种方法,拿出来分享:

http://topic.csdn.net/u/20120219/20/4888d128-3b77-47bc-aa21-cb02c014bc1f.html?84661

c#,将pdf文件转换成图片文件。相关推荐

  1. Python中将字节流文件转换成图片文件

    Python中将字节流文件转换成图片文件 import urllib3 import os #PIL图像处理标准库 from PIL import Image from io import Bytes ...

  2. C#,pdf文件转换成图片文件。

    本文采用Adobe Acrobat9.0的COM组件,将Pdf文件的每一页转换成对应的图片文件. 开发环境:VS2010,.Net Framework4.0,Adobe Acrobat9.0. 工程中 ...

  3. c#,将pdf文件转换成图片文件

    本文采用Adobe Acrobat9.0的COM组件,将Pdf文件的每一页转换成对应的图片文件. 开发环境:VS2010,.Net Framework4.0,Adobe Acrobat9.0. 工程中 ...

  4. xml文件转换成图片_怎样能把PDF文件转换成图片?

    我们的日常生活工作中时常碰到pdf与Excel.Word.ppt和jpg等文件格式的转换,有时候由于工作的需要,要把PDF文件转换成图片.并且现在网上的很多素材都是PDF文件格式的,如果我们想要里面的 ...

  5. xml文件转换成图片_如何把pdf文件转换成图片?

    pdf文件怎么转成JPG图片呢?相信有不少人在迷惑,可能还在想着截图等操作来完成转换,但如果是截图成JPG图片后的效果可能很差,并没有之前pdf文件那么清楚.那这样往往打印出来的效果也不怎么理想,那怎 ...

  6. 一键批量PDF转换成图片文件

    PDF文件转换成图片格式的文件,这需要用到PDF转换器的帮助了,现在很多PDF转换器都可以做到PDF转图片的功能,比如:okfone PDF转换大师 打开软件点击进入[PDF转文件] 在"操 ...

  7. 手机端怎么把PDF格式文件转换成图片

    用过PDF文件的伙伴都知道,PDF文件格式可以将文字.字型.格式.颜色及独立于设备和分辨率的图形图像等封装在一个文件中,是我们工作中会经常用到的一种文件格式.如果是在手机中使用到PDF文件的话,需要将 ...

  8. 手机PDF文件转换成图片教程来了,PDF转换器推荐

    手机PDF文件怎么转换成图片?你还在用截图的方式来将PDF文件转换成图片吗?虽然确实是一种转换的方法,但是使用过的都会发现转换出来的图片清晰度不高,那该如何高清转换呢?今天小编就给大家推荐一个比较好用 ...

  9. 如何把pdf文件转换成图片?

    怎么把pdf文件转换成图片?在工作中我们经常跟PDF文件打交道,PDF文件的格式稳定,安全,好阅读的优点,给我们提供了极大的便利.但在提供便利的同时也会有所限制,比如在需要编辑PDF文件的时候,就会因 ...

最新文章

  1. ORB-SLAM2安装
  2. React Native Android启动白屏的一种解决方案下
  3. Linux 命令查找指定文件夹下符合查询条件的文件和文件夹实例演示
  4. java EE map
  5. CImage类的使用介绍!
  6. META http-equiv=X-UA-Compatible content=IE=EmulateIE7
  7. 工业级光模块是什么?
  8. 3 photolemur 样式下载_全自动照片美化软件Photolemur mac特别版
  9. JavaScript--百度地图那些坑
  10. 生成树协议计算机网络,【图片】生成树协议奇怪!我错哪了两边都绿了呀【计算机网络吧】_百度贴吧...
  11. is_file() 和 is_dir()注意事项
  12. HDU1286 找新朋友
  13. 简单几步配置gitlab
  14. 简洁大气的网站微信QQ防红跳转代码
  15. OSN8800 华为单板
  16. Greek Gods,Roman Gods and Chinese Gods
  17. EayRadius 于 2013-7-19 进行体验度更新,增加用户体验度
  18. 判断设备访问类型是PC端还是WAP端
  19. 物联网卡开启养老新模式
  20. Linux 安装httpd(apache)超详细教程

热门文章

  1. 逻辑回归是个什么逻辑
  2. 图像处理中常用数学知识
  3. 【杂谈】怎么使用有三AI完成系统性学习并赚钱
  4. 全球及中国散热市场应用格局与竞争态势研究报告2022-2027年
  5. 各安全浏览器如何设2345为主页
  6. 京东对话中国农民丰收节交易会 供应链下沉打通产销全链
  7. 精准扶贫电商重整流通-农业大健康·李玉庭: 谋定功能农产品
  8. “互联网+”非遗谋定市场化-万祥军:经信研究世屹文化
  9. 算法系列之五 希尔排序
  10. 多生产者多消费者问题