需求是将ppt中的图片都导出来保存,然后以贴图的方式帖到指定的区域去。
现在的问题是,图片都导出来,但貌似其中有些图片的坐标不对,导致贴上去之后位置错误。
主要代码如下,求高手指正: CSlides slides(lpDisp);
for(int i=1; i <= slides.get_Count(); i++)
{
CSlide crtSlide;
crtSlide = slides.Item(COleVariant((long)i)); // 导出整张幻灯片图片
CString csSlide;
csSlide.Format(L"%s\\%d_-1_slide.jpg",str_SavePath, i); 
crtSlide.Export(csSlide, L"jpg", 0, 0);  // 获取幻灯片N里面的各个元素(shaps),保存成PNG图片
CShapes shapes = crtSlide.get_Shapes(); for (int j=1; j<=shapes.get_Count(); j++)
{
CShape shape;
shape = shapes.Item(COleVariant((long)j));  CString strPathName;
                                int left = shape.get_Left();
int top = shape.get_Top();

int width = shape.get_Width();
int height = shape.get_Height();
strPathName.Format(L"%s\\%d_%d_%d_%d.png",str_SavePath, i, j, left, top);
shape.Export(strPathName, 2,0,0, 4); 
} // 导出幻灯片N的背景,保存成PNG图片
CString strSlideBk;
strSlideBk.Format(L"%s\\%d_0_0_0.png",str_SavePath, i); while(shapes.get_Count())
{
CShape shape;
shape = shapes.Item(COleVariant((long)1));
shape.Delete();
}
crtSlide.Export(strSlideBk, L"png", 0, 0); 
} oPresentation.Close(); break;
}取得图片左上坐标那两行,有问题,某些图片会偏离很大