OleObjectFrame を追加したときのオブジェクト プレビュー問題

はじめに

Aspose.Slides for Java を使用してスライドに OleObjectFrame を追加すると、出力スライドに「EMBEDDED OLE OBJECT」メッセージが表示されます。このメッセージは意図されたものであり、バグではありません。

OLE オブジェクトの操作に関する詳細は、Manage OLE を参照してください。

説明とソリューション

Aspose.Slides は、OLE オブジェクトが変更されプレビュー画像を更新する必要があることを通知するために「EMBEDDED OLE OBJECT」メッセージを表示します。

たとえば、Microsoft Excel のチャートを OleObjectFrame としてスライドに追加し(詳細は「Manage OLE」記事を参照)、そのプレゼンテーションを Microsoft PowerPoint で開くと、スライドに次の画像が表示されます。

OLE オブジェクト メッセージ

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

OLE オブジェクト > 編集

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

OLE オブジェクト データ

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

OLE オブジェクト プレビュー

この時点で、OLE オブジェクトの画像が正しく更新されるようにプレゼンテーションを保存したい場合があります。これにより、プレゼンテーションを保存した後、再度開いたときに「EMBEDDED OLE OBJECT」メッセージが表示されなくなります。

その他のソリューション

ソリューション 1: 「Embedded OLE Object」メッセージを画像に置き換える

PowerPoint でプレゼンテーションを開いて保存することで「EMBEDDED OLE OBJECT」メッセージを削除したくない場合は、好きなプレビュー画像にメッセージを置き換えることができます。以下のコード行がその手順を示しています:

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 を含むスライドは次のように変わります:

新しい OLE オブジェクト画像

ソリューション 2: PowerPoint 用のアドオンを作成する

また、プレゼンテーションを開く際にすべての OLE オブジェクトを更新する Microsoft PowerPoint 用のアドオンを作成することもできます。