问题描述
我想将WORD转成图片,具体思路如下,先用虚拟打印机转成TIFF,再把tiff转成jpg。。代码如下:publicvoidPrint(stringwordfile,stringoutputpath){Word.ApplicationClassword=newWord.ApplicationClass();TypewordType=word.GetType();//打开WORD文档Word.Documentsdocs=word.Documents;TypedocsType=docs.GetType();objectobjDocName=wordfile;Word.Documentdoc=(Word.Document)docsType.InvokeMember("Open",System.Reflection.BindingFlags.InvokeMethod,null,docs,newObject[]{objDocName,true,true});//打印输出到指定文件//可以使用doc.PrintOut();方法,次方法调用中的参数设置较繁琐,建议使用Type.InvokeMember来调用时可以不用将PrintOut的参数设置全,只设置4个主要参数TypedocType=doc.GetType();//objectprintFileName=wordfile+".xps";objectprintFileName=wordfile+".tiff";docType.InvokeMember("PrintOut",System.Reflection.BindingFlags.InvokeMethod,null,doc,newobject[]{false,false,Word.WdPrintOutRange.wdPrintAllDocument,printFileName});System.Drawing.Imaging.ImageFormatimageformat=System.Drawing.Imaging.ImageFormat.Jpeg;;//退出WORDwordType.InvokeMember("Quit",System.Reflection.BindingFlags.InvokeMethod,null,word,null);MessageBox.Show(printFileName.ToString());System.Drawing.Imageimg=System.Drawing.Image.FromFile(printFileName.ToString());Guidguid=(Guid)img.FrameDimensionsList.GetValue(0);FrameDimensiondimension=newFrameDimension(guid);inttotalPage=img.GetFrameCount(dimension);for(inti=0;i<totalPage;i++){img.SelectActiveFrame(dimension,i);img.Save("C:\Gif"+i+".jpeg",ImageFormat.Jpeg);}//img.Save(outputpath,imageformat);//img.Dispose();}编译通过,运行至System.Drawing.Imageimg=System.Drawing.Image.FromFile(printFileName.ToString());时提示“内存不足,如果要创建数组,请确保大小正确”请问是何问题,请各位不吝赐教!!!
解决方案
解决方案二:
你解决了吗?
解决方案三:
inti=0;foreach(Word.InlineShapeishindoc.InlineShapes){if(ish.Type==Word.WdInlineShapeType.wdInlineShapePicture){ish.Select();newApp.Selection.Copy();Imageimage=Clipboard.GetImage();Bitmapbitmap=newBitmap(image);bitmap.Save("c:\pic"+i.ToString()+".jpg");i++;}}
解决方案四:
newApp.Selection.Copy();这里是什么意思?
解决方案五:
解决了吗?