OleObjectFrame 추가 시 객체 미리 보기 문제
소개
Java를 통해 PHP용 Aspose.Slides를 사용할 때 슬라이드에 OleObjectFrame을 추가하면 출력 슬라이드에 “EMBEDDED OLE OBJECT” 메시지가 표시됩니다. 이 메시지는 의도된 것이며 버그가 아닙니다.
OLE 객체 작업에 대한 자세한 내용은 Manage OLE를 참조하십시오.
설명 및 해결 방법
Aspose.Slides는 OLE 객체가 변경되었으며 미리 보기 이미지가 업데이트되어야 함을 알리기 위해 “EMBEDDED OLE OBJECT” 메시지를 표시합니다.
예를 들어 Microsoft Excel 차트를 OleObjectFrame으로 슬라이드에 추가하고(자세한 내용은 “Manage OLE” 문서 참고) Microsoft PowerPoint에서 프레젠테이션을 열면 슬라이드에 다음 이미지가 표시됩니다:

OLE 객체가 슬라이드에 추가되었는지 확인하려면 “EMBEDDED OLE OBJECT” 메시지를 더블 클릭하거나 마우스 오른쪽 버튼을 클릭한 뒤 Object > Edit 옵션을 선택하면 됩니다.

PowerPoint가 내장된 OLE 객체를 엽니다.

슬라이드에 “EMBEDDED OLE OBJECT” 메시지가 남을 수 있습니다. OLE 객체를 클릭하면 슬라이드 미리 보기가 업데이트되어 “EMBEDDED OLE OBJECT” 메시지가 실제 OLE 객체 이미지로 교체됩니다.

이제 프레젠테이션을 저장하여 OLE 객체 이미지가 올바르게 업데이트되었는지 확인하고 싶을 것입니다. 이렇게 하면 프레젠테이션을 저장한 후 다시 열었을 때 “EMBEDDED OLE OBJECT” 메시지를 보지 않게 됩니다.
다른 해결 방법
해결 방법 1: “Embedded OLE Object” 메시지를 이미지로 교체
PowerPoint에서 프레젠테이션을 열고 저장하여 “EMBEDDED OLE OBJECT” 메시지를 제거하고 싶지 않은 경우, 원하는 미리 보기 이미지로 메시지를 교체할 수 있습니다. 다음 코드는 그 과정을 보여 줍니다:
$presentation = new Presentation("embeddedOLE.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$oleFrame = $slide->getShapes()->get_Item(0);
// 프레젠테이션 리소스에 이미지를 추가합니다.
$image = Images::fromFile("myImage.png");
$oleImage = $presentation->getImages()->addImage($image);
$image->dispose();
// OLE 객체 미리 보기를 위한 제목과 이미지를 설정합니다.
$oleFrame->setSubstitutePictureTitle("My title");
$oleFrame->getSubstitutePictureFormat()->getPicture()->setImage($oleImage);
$oleFrame->setObjectIcon(false);
$presentation->save("embeddedOLE-newImage.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
OleObjectFrame이 포함된 슬라이드는 다음과 같이 변경됩니다:

해결 방법 2: PowerPoint용 애드온 만들기
Microsoft PowerPoint용 애드온을 만들어 프레젠테이션을 열 때 모든 OLE 객체를 업데이트하도록 할 수도 있습니다.