问题描述
环境是VS2005.NetFramework2.0AdobeAcrobat9.0引用了Acrobat.dll和Microsoft.VisualBasic.dll代码如下:publicstaticvoidConvertPdf2Image(stringpdfFilePath,stringimageDirectoryPath,intbeginPageNum,intendPageNum,ImageFormatformat,doublezoom){Acrobat.CAcroPDDocpdfDoc=null;Acrobat.CAcroPDPagepdfPage=null;Acrobat.CAcroRectpdfRect=null;Acrobat.CAcroPointpdfPoint=null;//生成操作Pdf文件的Com对象pdfDoc=(Acrobat.CAcroPDDoc)Microsoft.VisualBasic.Interaction.CreateObject("AcroExch.PDDoc","");//报错//检查输入参数if(!pdfDoc.Open(pdfFilePath)){thrownewFileNotFoundException(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){thrownewArgumentException("参数"beginPageNum"必须小于"endPageNum"!");}if(format==null){format=ImageFormat.Png;}if(zoom<=0){zoom=1;}//转换for(inti=beginPageNum;i<=endPageNum;i++){//取出当前页pdfPage=(Acrobat.CAcroPDPage)pdfDoc.AcquirePage(i-1);//得到当前页的大小pdfPoint=(Acrobat.CAcroPoint)pdfPage.GetSize();//生成一个页的裁剪区矩形对象pdfRect=(Acrobat.CAcroRect)Microsoft.VisualBasic.Interaction.CreateObject("AcroExch.Rect","");//计算当前页经缩放后的实际宽度和高度,zoom==1时,保持原比例大小intimgWidth=(int)((double)pdfPoint.x*zoom);intimgHeight=(int)((double)pdfPoint.y*zoom);//设置裁剪矩形的大小为当前页的大小pdfRect.Left=0;pdfRect.right=(short)imgWidth;pdfRect.Top=0;pdfRect.bottom=(short)imgHeight;//将当前页的裁剪区的内容编成图片后复制到剪贴板中pdfPage.CopyToClipboard(pdfRect,0,0,(short)(100*zoom));IDataObjectclipboardData=Clipboard.GetDataObject();//检查剪贴板中的对象是否是图片,如果是图片则将其保存为指定格式的图片文件if(clipboardData.GetDataPresent(DataFormats.Bitmap)){BitmappdfBitmap=(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);}
pdfDoc=(Acrobat.CAcroPDDoc)Microsoft.VisualBasic.Interaction.CreateObject("AcroExch.PDDoc","");报错:无法创建ActiveX组件。“w3wp.exe”(托管):已加载“C:WindowsassemblyGAC_MSILMicrosoft.VisualBasic8.0.0.0__b03f5f7f11d50a3aMicrosoft.VisualBasic.dll”,已跳过符号加载。已对模块进行了优化并启用了调试器选项“仅我的代码”。“w3wp.exe”(托管):已加载“C:WindowsassemblyGAC_MSILMicrosoft.VisualBasic.resources8.0.0.0_zh-CHS_b03f5f7f11d50a3aMicrosoft.VisualBasic.resources.dll”,未加载符号。在System.Exception中第一次偶然出现的“Microsoft.VisualBasic.dll”类型的异常
解决方案
解决方案二:
没有人知道吗?
解决方案三:
这不是vs支不支持,你找第三方的dll去处理
解决方案四:
引用1楼CE421129的回复:
没有人知道吗?
第三方的Acrobat.dll和Microsoft.VisualBasic.dll但版本是否支持呢?前者是AdobeAcrobat9Pro带的,后着是.NetFramework2.0带的
解决方案五:
引用2楼bdmh的回复:
这不是vs支不支持,你找第三方的dll去处理
第三方的Acrobat.dll和Microsoft.VisualBasic.dll但版本是否支持呢?前者是AdobeAcrobat9Pro带的,后着是.NetFramework2.0带的