Робота з об'єктами Олеся

OLE стоїть для “Об’єктного зв’язку і вбудовування”. Це технологія, за допомогою якої користувачі можуть працювати з документами, що містять “об’єкти”, створеними або редаговані сторонніми додатками. Це, OLE дозволяє експортувати ці “об’єкти” на інший додаток для редагування, а потім імпортувати їх назад з деякими додатковим вмістом.

У цій статті ми будемо говорити про вставку об’єкта ОЛЕ та налаштування його властивостей в документ.

Вставте об’єкт Ole

Якщо ви хочете OLE Об’єкт, зателефонуйте InsertOleObject метод і пройти його ProgId явно з іншими параметрами.

Приклад наступного коду показує, як вставляти OLE Об’єкт в документ:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.insertOleObject("http://www.aspose.com", "htmlfile", true, true, null);
doc.save(getArtifactsDir() + "WorkingWithOleObjectsAndActiveX.InsertOleObject.docx");

Встановити ім’я та розширення файлів, коли Inserting OLE Об’єкт

OLE пакет є спадковим і “необхідним” способом зберігати вбудовані об’єкти, якщо OLE обробник невідомо.

Рано Windows варіанти, такі як Windows 3.1, 95, і 98 мали пакет. Заява, яка може бути використана для складання будь-якого типу даних в документ. Це додаток тепер виключено з Windows, але Microsoft Word і інші додатки, як і раніше, використовують його для складання даних, якщо обробник OLE відсутній або невідомо. Про нас OlePackage Клас надає користувачам доступ до властивостей пакету OLE.

Приклад коду показує, як встановити ім’я файлу, розширення та назву відображення для OLE Package:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
byte[] bs = FileUtils.readFileToByteArray(new File(getMyDir() + "Zip file.zip"));
try (ByteArrayInputStream stream = new ByteArrayInputStream(bs))
{
Shape shape = builder.insertOleObject(stream, "Package", true, null);
OlePackage olePackage = shape.getOleFormat().getOlePackage();
olePackage.setFileName("filename.zip");
olePackage.setDisplayName("displayname.zip");
doc.save(getArtifactsDir() + "WorkingWithOleObjectsAndActiveX.InsertOleObjectWithOlePackage.docx");
}

Отримати доступ до сирих даних OLE

Користувачі можуть отримати доступ до даних об’єктів OLE за допомогою різних властивостей та методів OleFormat клас. Наприклад, можна отримати OLE об’єкт сирої інформації або шлях і ім’я файлу джерела для об’єкту OLE.

Приклад коду показує, як отримати OLE Об’єкт сировини з використанням GetRawData метод:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Shape oleShape = (Shape) doc.getChild(NodeType.SHAPE, 0, true);
byte[] oleRawData = oleShape.getOleFormat().getRawData();

Вставити OLE Об’єкт ікони

OLE об’єкти можна вставляти в документи як зображення.

Приклад коду показує, як вставити об’єкт OLE як іконку. Для цієї мети DocumentBuilder клас виводить InsertOleObjectAsIcon метод.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.insertOleObjectAsIcon(getMyDir() + "Presentation.pptx", false, getImagesDir() + "Logo icon.ico",
"My embedded file");
doc.save(getArtifactsDir() + "WorkingWithOleObjectsAndActiveX.InsertOleObjectAsIcon.docx");

Приклад коду показує, як вставляти вбудований об’єкт OLE як іконку з потоку в документ:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
try(ByteArrayInputStream stream = new ByteArrayInputStream(FileUtils.readFileToByteArray(new File(getMyDir() + "Presentation.pptx"))))
{
builder.insertOleObjectAsIcon(stream, "Package", getImagesDir() + "Logo icon.ico", "My embedded file");
}
doc.save(getArtifactsDir() + "WorkingWithOleObjectsAndActiveX.InsertOleObjectAsIconUsingStream.docx");

Вставити онлайн відео

Онлайн відео можна вставляти в документ Word з * “Insert” > “Online Video”* вкладка. Ви можете вставити онлайн відео в документ на поточному місці за допомогою виклику InsertOnlineVideo метод:

Про нас DocumentBuilder клас представляє чотири перевантаження цього методу. Перші роботи з найпопулярнішими відео ресурсами та займають URL відео як параметр. Наприклад, перший перевантаження підтримує просту вставку онлайн відео з Веб-сайт і Вімео ресурси.

Приклад наступного коду показує, як вставляти онлайн відео з Vimeo в документ:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.insertOnlineVideo("https://youtu.be/t_1LYZ102RA", 360.0, 270.0);
// We can watch the video from Microsoft Word by clicking on the shape.
doc.save(getArtifactsDir() + "DocumentBuilder.InsertVideoWithUrl.docx");

Другий перевантаження працює з усіма іншими відеоресурсами і приймає вбудований HTML-код як параметр. HTML-код для вбудовування відео може відрізнятися залежно від постачальника, тому зв’яжіться з відповідним постачальником для деталей.

Приклад коду показує, як вставити онлайн відео в документ за допомогою такого HTML коду:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
String videoUrl = "https://vimeo.com/52477838";
String videoEmbedCode = "<iframe src=\"https://player.vimeo.com/video/52477838\" width=\"640\" height=\"360\" frameborder=\"0\" " +
"title=\"Aspose\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>";
byte[] thumbnailImageBytes = IOUtils.toByteArray(getAsposelogoUri().toURL().openStream());
BufferedImage image = ImageIO.read(new ByteArrayInputStream(thumbnailImageBytes));
// Below are two ways of creating a shape with a custom thumbnail, which links to an online video
// that will play when we click on the shape in Microsoft Word.
// 1 - Insert an inline shape at the builder's node insertion cursor:
builder.insertOnlineVideo(videoUrl, videoEmbedCode, thumbnailImageBytes, image.getWidth(), image.getHeight());
doc.save(getArtifactsDir() + "DocumentBuilder.InsertOnlineVideoCustomThumbnail.docx");