Работа с 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 е наследство и “недокументиран” начин за съхранение на вградени обекти, ако не е известен.
Рано Windows версии като Windows 3.1, 95 и 98 са имали конвейер. exe приложение, което може да се използва за вграждане на всеки вид данни в документа. Това заявление вече е изключено от Windows, но Microsoft Word и други приложения все още го използват, за да вграждат данни, ако уредът за управление на OLE липсва или не е известен. На 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); | |
} | |
Get Access to 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 Object като икона. За тази цел, 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” tab. Можете да поставите онлайн видео в документ на текущото място, като се обадите на InsertOnlineVideo метод.
На DocumentBuilder Класът въвежда четири претоварване на този метод. Първият работи с най-популярните видео ресурси и отнема URL
на видеото като параметър. Например, първото претоварване поддържа просто въвеждане на онлайн видео от YouTube както и Vimeo ресурси.
Следният пример с код показва как да вмъкнете онлайн видео от 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); |