OleObjectFrame 追加時のオブジェクトプレビュー問題
はじめに
Aspose.Slides for Java を使用してスライドに OleObjectFrame を追加すると、出力スライドに「EMBEDDED OLE OBJECT」メッセージが表示されます。このメッセージは意図されたものであり、バグではありません。
詳しい情報は、OLE の管理 を参照してください。
説明とソリューション
Aspose.Slides は、OLE オブジェクトが変更され、プレビュー画像を更新する必要があることを通知するために「EMBEDDED OLE OBJECT」メッセージを表示します。
たとえば、Microsoft Excel のチャートを OleObjectFrame としてスライドに追加した場合(詳細は「OLE の管理」記事を参照)、その後 Microsoft PowerPoint でプレゼンテーションを開くと、スライドに次の画像が表示されます:

OLE オブジェクトがスライドに追加されたことを確認したい場合は、「EMBEDDED OLE OBJECT」メッセージをダブルクリックするか、右クリックして オブジェクト > 編集 オプションを選択します。

PowerPoint は埋め込み OLE オブジェクトを開きます。

スライドには「EMBEDDED OLE OBJECT」メッセージが残ることがあります。OLE オブジェクトをクリックすると、スライドのプレビューが更新され、「EMBEDDED OLE OBJECT」メッセージは OLE オブジェクトの実際の画像に置き換わります。

これで、プレゼンテーションを保存して OLE オブジェクトの画像が正しく更新されていることを確認できます。この方法でプレゼンテーションを保存し、再度開くと「EMBEDDED OLE OBJECT」メッセージは表示されません。
その他の解決策
PowerPoint でプレゼンテーションを開いて保存することで「EMBEDDED OLE OBJECT」メッセージを削除したくない場合は、好きなプレビュー画像に置き換えることができます。以下のコード行がその手順を示しています:
import com.aspose.slides.*;
Presentation presentation = new Presentation("embeddedOLE.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IOleObjectFrame oleFrame = (IOleObjectFrame) slide.getShapes().get_Item(0);
// プレゼンテーションリソースに画像を追加します。
IImage image = Images.fromFile("myImage.png");
IPPImage oleImage = presentation.getImages().addImage(image);
// OLE オブジェクトのプレビュー用にタイトルと画像を設定します。
oleFrame.setSubstitutePictureTitle("My title");
oleFrame.getSubstitutePictureFormat().getPicture().setImage(oleImage);
oleFrame.setObjectIcon(false);
presentation.save("embeddedOLE-newImage.pptx", SaveFormat.Pptx);
} finally {
if (presentation != null) presentation.dispose();
}
OleObjectFrame を含むスライドは次のように変更されます。
