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年期間找到有關更改的文檔,也沒有關於如何正確使用它的好例子。

有沒有人有任何想法這裏發生了什麼?

+0

你能否也請發佈'出口'功能代碼? – Helen

+0

@Helen - Export方法在Powerpoint Shape對象上實現,該對象是Microsoft Office Interop庫的一部分。你可以從這裏找到方法的文檔:http://msdn.microsoft.com/en-us/library/microsoft.office.interop.powerpoint.shape.export(v=office.14).aspx –

+0

現在想想關於它,我想知道是否在2013年,他們已經開始要求剩下的論點。 (ScaleWidth,ScaleHeight和ExportMode,我假設所有這些都是可選的,因爲該方法在2010年可以正常工作)。 –

回答

1

因此,事實證明,Office 2013文檔(DOCX格式)實際上只是壓縮目錄。事實上,2010年和2013年都是如此。

我真正需要做的第一件事就是從壓縮目錄中提取圖像。

相關問題