0
非法值的錯誤,我寫了一個MS的JScript實用程序(在SmartBear的TestComplete使用),其出口嵌入一個Word文檔中的PNG文件在磁盤映像。當我在Win7上運行此實用程序時,使用Office 2010時,一切正常。但是,當我使用Office 2013在Win8上運行它時,將PpShapeFormat過濾器傳遞給Export方法時,出現「非法值」錯誤。爲什麼會出現在Office 2013使用PpShapeFormat互操作
這裏是我的腳本的相關部分:
//get the list of shapes from the word doc, and how many there are
var iShapeList = DocObj.InlineShapes; //DocObj is created elsewhere
var iShapeTotal = iShapeList.count;
//create a powerpoint object and instantiate a presentation
var pptApp = Sys.OleObject("PowerPoint.Application"); //open PowerPoint
var pptDoc = pptApp.Presentations.Add(); //create a new blank document
var pptDocSlide = pptDoc.Slides.Add(1, 12); //12 = ppLayoutBlank
var pptShapeFmt = pptApp.PpShapeFormat; //format filter object
//loop through the Word document shapes, copy each one, paste it to the Ppt slide,
//export the image out of the slide, and then delete it
for(var iShapeNo = 1; iShapeNo <= iShapeTotal; iShapeNo++)
{
var iShape = iShapeList(iShapeNo); //get a shape
iShape.ScaleHeight = hScale; //set the shape height and width
iShape.ScaleWidth = wScale;
iShape.Range.Copy();//copy the shape to the clipboard
try
{
with (pptDocSlide.Shapes.Paste(1)) //PpViewType 1 = Paste into Slide View
{
//Export the image pasted into the slide, to the extract path, then delete the slide.
Export(ExtractPath + "\\" + IntToStr(iShapeNo) + ".png", pptShapeFmt); //2 = ppShapeFormatPNG
Delete();
++successTally; //one more in the WIN column!
}
}
catch(exception)
{
//does a bunch of cleanup
}
}
研究的PpShapeFormat,我發現這個Enumeration參考。但是我無法在2010年到2013年期間找到有關更改的文檔,也沒有關於如何正確使用它的好例子。
有沒有人有任何想法這裏發生了什麼?
你能否也請發佈'出口'功能代碼? – Helen
@Helen - Export方法在Powerpoint Shape對象上實現,該對象是Microsoft Office Interop庫的一部分。你可以從這裏找到方法的文檔:http://msdn.microsoft.com/en-us/library/microsoft.office.interop.powerpoint.shape.export(v=office.14).aspx –
現在想想關於它,我想知道是否在2013年,他們已經開始要求剩下的論點。 (ScaleWidth,ScaleHeight和ExportMode,我假設所有這些都是可選的,因爲該方法在2010年可以正常工作)。 –