Vấn đề Xem trước Đối tượng Khi Thêm OleObjectFrame

Giới thiệu

Khi sử dụng Aspose.Slides cho Java, nếu bạn thêm OleObjectFrame vào một slide, một thông điệp “EMBEDDED OLE OBJECT” sẽ được hiển thị trên slide đầu ra. Thông điệp này là có ý định và KHÔNG phải là lỗi.

Để biết thêm thông tin về cách làm việc với các đối tượng OLE, xem Quản lý OLE.

Giải thích và Giải pháp

Aspose.Slides hiển thị thông điệp “EMBEDDED OLE OBJECT” để thông báo cho bạn rằng đối tượng OLE đã được thay đổi và ảnh xem trước cần được cập nhật.

Ví dụ, nếu bạn thêm một biểu đồ Microsoft Excel dưới dạng OleObjectFrame vào một slide (để biết thêm chi tiết, xem bài viết “Quản lý OLE”) và sau đó mở bản thuyết trình trong Microsoft PowerPoint, bạn sẽ thấy hình ảnh này trên slide:

Thông báo đối tượng OLE

Nếu bạn muốn kiểm tra và xác nhận rằng đối tượng OLE của bạn đã được thêm vào slide, bạn phải nhấp đúp vào thông điệp “EMBEDDED OLE OBJECT”, hoặc bạn có thể nhấp chuột phải vào nó và chọn tùy chọn Object > Edit.

Đối tượng OLE > Chỉnh sửa

PowerPoint sau đó sẽ mở đối tượng OLE nhúng.

Dữ liệu đối tượng OLE

Slide có thể vẫn giữ lại thông điệp “EMBEDDED OLE OBJECT”. Khi bạn nhấp vào đối tượng OLE, bản xem trước của slide sẽ được cập nhật và thông điệp “EMBEDDED OLE OBJECT” sẽ được thay thế bằng hình ảnh thực tế của đối tượng OLE.

Xem trước đối tượng OLE

Bây giờ, bạn có thể muốn lưu bản thuyết trình để đảm bảo rằng hình ảnh cho Đối tượng OLE được cập nhật đúng cách. Khi đó, sau khi lưu bản thuyết trình, khi bạn mở lại bản thuyết trình, bạn sẽ NOT see the “EMBEDDED OLE OBJECT” message.

Giải pháp khác

Nếu bạn không muốn loại bỏ thông điệp “EMBEDDED OLE OBJECT” bằng cách mở bản thuyết trình trong PowerPoint và sau đó lưu lại, bạn có thể thay thế thông điệp bằng ảnh xem trước mà bạn muốn. Các dòng mã sau đây minh họa quy trình:

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);

    // Thêm hình ảnh vào tài nguyên bản trình bày.
    IImage image = Images.fromFile("myImage.png");
    IPPImage oleImage = presentation.getImages().addImage(image);

    // Đặt tiêu đề và hình ảnh cho bản xem trước đối tượng 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();    
}

Slide chứa OleObjectFrame sau đó sẽ thay đổi thành:

Hình ảnh đối tượng OLE mới