Работа с объектами OLE и онлайн-видео
OLE (Object Linking and Embedding) - это технология, с помощью которой пользователи могут работать с документами, содержащими “объекты”, созданные или отредактированные сторонними приложениями. То есть OLE позволяет редактировать приложения для экспорта этих “объектов” в другое редактирующее приложение, а затем импортировать их с дополнительным контентом.
В этой статье мы поговорим о вставке объекта OLE и настройке его свойств, а также о вставке онлайн-видео в документ.
Включить OLE Объект
Если вам нужен объект OLE, позвоните InsertOleObject Способ и передать его ProgId явно с другими параметрами.
Следующий пример кода показывает, как вставить OLE Объект в документе:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.InsertOleObject("http://www.aspose.com", "htmlfile", true, true, null); | |
dataDir = dataDir + "DocumentBuilderInsertOleObject_out.doc"; | |
doc.Save(dataDir); |
Установите имя файла и расширение при вставке объекта OLE
Пакет OLE является устаревшим и “недокументированным” способом хранения встроенных объектов, если обработчик OLE неизвестен.
Ранний Windows Такие версии, как Windows 3.1, 95 и 98 имели пакет. Приложение exe, которое может быть использовано для встраивания любого типа данных в документ. Теперь эта заявка исключена из WindowsНо Microsoft Word и другие приложения по-прежнему используют его для встраивания данных, если обработчик OLE отсутствует или неизвестен. The OlePackage
Класс позволяет пользователям получить доступ к свойствам пакета OLE.
Следующий пример кода показывает, как установить имя файла, расширение и отображаемое имя для пакета OLE:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
byte[] bs = File.ReadAllBytes(dataDir + @"input.zip"); | |
using (Stream stream = new MemoryStream(bs)) | |
{ | |
Shape shape = builder.InsertOleObject(stream, "Package", true, null); | |
OlePackage olePackage = shape.OleFormat.OlePackage; | |
olePackage.FileName = "filename.zip"; | |
olePackage.DisplayName = "displayname.zip"; | |
dataDir = dataDir + "DocumentBuilderInsertOleObjectOlePackage_out.doc"; | |
doc.Save(dataDir); | |
} | |
Получить доступ к OLE Object Raw Data
Пользователи могут получить доступ к данным объекта OLE, используя различные свойства и методы OleFormat
класс. Например, можно получить OLE
исходные данные объекта или путь и имя исходного файла для связанного объекта OLE.
Следующий пример кода показывает, как получить OLE Объектные необработанные данные с использованием GetRawData метод:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
// Load document with OLE object. | |
Document doc = new Document(dataDir + "DocumentBuilderInsertTextInputFormField_out.doc"); | |
Shape oleShape = (Shape)doc.GetChild(NodeType.Shape, 0, true); | |
byte[] oleRawData = oleShape.OleFormat.GetRawData(); |
Включить OLE Объект как икона
Объекты OLE также могут быть вставлены в документы в виде изображений.
Следующий пример кода показывает, как вставить объект OLE в качестве значка. Для этой цели, DocumentBuilder Класс раскрывает InsertOleObjectAsIcon метод:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
Shape shape = builder.InsertOleObjectAsIcon(dataDir + "embedded.xlsx", false, dataDir + "icon.ico", "My embedded file"); | |
doc.Save(dataDir + "EmbeddeWithIcon_out.docx"); | |
Console.WriteLine("The document has been saved with OLE Object as an Icon."); |
Следующий пример кода показывает, как вставить встроенный объект OLE в виде значка из потока в документ:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
Shape shape = builder.InsertOleObjectAsIcon(dataDir + "embedded.xlsx", false, dataDir + "icon.ico", "My embedded file"); | |
using (MemoryStream stream = new MemoryStream(File.ReadAllBytes(dataDir + "embedded.xlsx"))) | |
builder.InsertOleObjectAsIcon(stream, "Package", dataDir + "icon.ico", "My embedded file"); | |
doc.Save(dataDir + "EmbeddeWithIconUsingStream_out.docx"); | |
Console.WriteLine("The document has been saved with OLE Object as an Icon."); |
Включить онлайн видео
Онлайн-видео можно вставить в документ Word из вкладки “Включить”> “Онлайн-видео”. Вы можете вставить онлайн-видео в документ в текущем месте, позвонив по адресу: InsertOnlineVideo метод.
The DocumentBuilder Класс вводит четыре перегрузки этого метода. Первый работает с самыми популярными видеоресурсами и берет URL
Видео как параметр. Например, первая перегрузка поддерживает простую вставку онлайн-видео из YouTube и Вимео ресурсов.
Следующий пример кода показывает, как вставить онлайн-видео из Vimeo В документе:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
//The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir_WorkingWithOnlineVideo(); | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Pass direct url from youtu.be. | |
string url = "https://youtu.be/t_1LYZ102RA"; | |
double width = 360; | |
double height = 270; | |
Shape shape = builder.InsertOnlineVideo(url, width, height); | |
dataDir = dataDir + "Insert.OnlineVideo_out_.docx"; | |
doc.Save(dataDir); |
Вторая перегрузка работает со всеми другими видеоресурсами и принимает в качестве параметра встроенный HTML-код. HTML-код для встраивания видео может варьироваться в зависимости от поставщика, поэтому свяжитесь с соответствующим поставщиком для получения подробной информации.
Следующий пример кода показывает, как вставить онлайн-видео в документ, используя такой HTML-код:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
//The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir_WorkingWithOnlineVideo(); | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Shape width/height. | |
double width = 360; | |
double height = 270; | |
// Poster frame image. | |
byte[] imageBytes = File.ReadAllBytes("TestImage.jpg"); | |
// Visible url | |
string vimeoVideoUrl = @"https://vimeo.com/52477838"; | |
// Embed Html code. | |
string vimeoEmbedCode = ""; | |
builder.InsertOnlineVideo(vimeoVideoUrl, vimeoEmbedCode, imageBytes, width, height); | |
dataDir = dataDir + "Insert.OnlineVideo_out_.docx"; | |
doc.Save(dataDir); |