Робота з 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); |
Встановити ім’я та розширення файлів, коли Inserting OLE Об’єкт
OLE пакет є спадковим і “необхідним” способом зберігати вбудовані об’єкти, якщо OLE обробник невідомий.
Рано Windows варіанти, такі як Windows 3.1, 95, і 98 мали пакет. exe додаток, який може бути використаний для складання будь-якого типу даних в документ. Це додаток тепер виключено з 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-.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
Користувачі можуть отримати доступ до даних об’єктів 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 з * “Insert” > “Online Video”* вкладка. Ви можете вставити онлайн відео в документ на поточному місці, викликаючи InsertOnlineVideo метод.
Про нас DocumentBuilder клас представляє чотири перевантаження цього методу. Перші роботи з найпопулярнішими відео ресурсами та займають URL
відео як параметр. Наприклад, перший перевантаження підтримує просту вставку онлайн відео з Веб-сайт і Вімео ресурси.
Приклад наступного коду показує, як вставляти онлайн відео з 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); |