C#实现PDF文件转换为图片的一个问题


本站和网页 https://www.phpfans.net/ask/MTEwMTAzMg.html 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

C#实现PDF文件转换为图片的一个问题
全站首页
Php文档
Php问答
行业资讯
Php论坛
Php手册
Php博客
首页
手机软件
手机游戏
单机游戏
资讯文章
专题下载
标签合集
php下载
php教程
电脑软件
当前位置:首页 → 问答吧 → C#实现PDF文件转换为图片的一个问题
C#实现PDF文件转换为图片的一个问题
时间:2010-10-11
来源:互联网
需要引用两个连接库,1、Com组件Acrobat(Adobe Acrobat Professional);2、.Net组件Microdoft.VisualBasic。
下面为主要代码,当电脑没有安装Adobe Acrobat Professional软件时,程序运行到红色代码处会有异常:无法创建ActiveX组件,装上就正常了,
我现在就是想在不装的情况下也正常,Acrobat.dll已经引入进来 ,不过没有注册成com组件,我想是这个原因造成的,如果有方法可以把Acrobat.dll注册成com组件应该问题就解决了,
现在请问有没有高手知道解决方法的!
public class ConvertPdfToPicture
private Acrobat.CAcroPDDoc pdfDoc;
private Acrobat.CAcroPDPage pdfPage;
private Acrobat.CAcroRect pdfRect;
private Acrobat.CAcroPoint pdfPoint;
public ConvertPdfToPicture()
public void ConvertToPicture(string[] pcFileNames)
try
//Pdf 文件数量判断
for (int n = 0; n < 1; n++)
string lcFileName = pcFileNames[n].ToString();
string lcOutPutFile = lcFileName.Replace(".pdf", "");
pdfDoc = (Acrobat.CAcroPDDoc)Microsoft.VisualBasic.Interaction.CreateObject("AcroExch.PDDoc", ""); bool llRet = pdfDoc.Open(lcFileName);
if (!llRet)
throw new FileNotFoundException();
int pageCount = pdfDoc.GetNumPages();
for (int i = 0; i < pageCount; i++)
pdfPage = (Acrobat.CAcroPDPage)pdfDoc.AcquirePage(i);
pdfPoint = (Acrobat.CAcroPoint)pdfPage.GetSize();
pdfRect = (Acrobat.CAcroRect)Microsoft.VisualBasic.Interaction.CreateObject("AcroExch.Rect", "");
pdfRect.Left = 0;
pdfRect.right = pdfPoint.x;
pdfRect.Top = 0;
pdfRect.bottom = pdfPoint.y;
pdfPage.CopyToClipboard(pdfRect, 0, 0, 100);
IDataObject loClipboardData = Clipboard.GetDataObject();
if (loClipboardData.GetDataPresent(DataFormats.Bitmap))
Bitmap pdfBitmap = (Bitmap)loClipboardData.GetData(DataFormats.Bitmap);
int loImgWidth = pdfPoint.x;
int loImgHeight = pdfPoint.y;
if (pdfPoint.x >= pdfPoint.y)
loImgWidth = loImgWidth ^ loImgHeight;
loImgHeight = loImgWidth ^ loImgHeight;
loImgWidth = loImgWidth ^ loImgHeight;
Bitmap loTemplateBitmap = new Bitmap(pdfPoint.x, pdfPoint.y);
Image loPdfImage = pdfBitmap.GetThumbnailImage(loImgWidth, loImgHeight, null, IntPtr.Zero);
Bitmap thumbnailBitmap = new Bitmap(loImgWidth + 7, loImgHeight + 7, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
// http://www.sellsbrothers.com/writing/default.aspx?content=dotnetimagerecoloring.htm
loTemplateBitmap.MakeTransparent();
using (Graphics poGraphics = Graphics.FromImage(thumbnailBitmap))
poGraphics.DrawImage(loPdfImage, 2, 2, loImgWidth, loImgHeight);
poGraphics.DrawImage(loTemplateBitmap, 0, 0);
//保存图象文件
string lcSaveFileName = lcOutPutFile + i.ToString() + ".png";
thumbnailBitmap.Save(lcSaveFileName, System.Drawing.Imaging.ImageFormat.Png);
loTemplateBitmap.Dispose();
loPdfImage.Dispose();
thumbnailBitmap.Dispose();
pdfDoc.Close();
// see http://blogs.msdn.com/yvesdolc/archive/2004/04/17/115379.aspx
Marshal.ReleaseComObject(pdfPage);
Marshal.ReleaseComObject(pdfRect);
Marshal.ReleaseComObject(pdfDoc);
catch (Exception ex)
MessageBox.Show(ex.Message);
作者: zc200819894
发布时间: 2010-10-11
来个人啊
作者: zc200819894
发布时间: 2010-10-14
想法太天真了,程序的COM组件需要其他的库支持啊.光拷贝个dll不行的.
作者: xxiju203
发布时间: 2010-10-15
相关阅读 更多
《进击的汉字》心墙怎么过_连完所有歌词通关图文攻略
时间:2022-12-23
真女神转生5女娲怎么获得?真女神转生5女娲获得方法
时间:2022-12-23
《美图秀秀》给视频添加音乐方法
时间:2022-12-23
《美图秀秀》添加时间水印方法
时间:2022-12-23
《美图秀秀》定时自动拍照设置方法
时间:2022-12-23
热门阅读
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
如何安装mysql8.0
阅读:31
Word快速设置标题样式步骤详解
阅读:28
20+道必知必会的Vue面试题(附答案解析)
阅读:37
HTML如何制作表单
阅读:22
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
ET文件格式和XLS格式文件之间如何转化?
阅读:24
react和vue的区别及优缺点是什么
阅读:121
支付宝人脸识别如何关闭?
阅读:21
中国农业银行app点了没反应该怎么解决? 农行app打不开的解决办法
阅读:21
热门下载
更多
英雄工艺跑者
休闲益智 15MB
下载
动物儿童赛车下载安装
休闲益智 30.46MB
下载
西格玛大逃杀手游
飞行射击 202MB
下载
996传奇攻速
角色扮演 125MB
下载
涂路跑者下载安装
休闲益智 40.9M
下载
疯狂一笔画完整版
休闲益智 11.6MB
下载
异族崛起汉化版
角色扮演 10.02MB
下载
海上模拟器正式版
休闲益智 112.9M
下载
伏羲降魔传
角色扮演 125MB
下载
超弹橡皮筋手游
休闲益智 592MB
下载
关于本站
免责申明
联系我们
Copyright 2006-2020 php爱好者(phpfans.net) All Rights Reserved.备案号:湘ICP备19024003号-2
本站为非盈利性网站,不接受任何广告。本站所有资源均由网友上传,如有侵权,请发邮件至 myphpfans@163.com phpfans.net