Lucrând cu obiecte OLE și video online
OLE (Object Linking and Embedding) este o tehnologie prin care utilizatorii pot lucra cu documente care conțin “obiecte” create sau editate de aplicații terțe. Adică, OLE permite unei aplicații de editare să exporte aceste “obiecte” către o altă aplicație de editare și apoi să le importe cu conținut suplimentar.
În acest articol vom discuta despre inserarea unui obiect OLE și setarea proprietăților sale, precum și inserarea unui videoclip online într-un document.
Inserează obiect OLE
Dacă doriți să utilizați OLE Object, apelați metoda InsertOleObject și transmiteți-i explicit ProgId cu alți parametri.
Exemplul de cod următor arată cum să inserați un obiect OLE într-un document:
// 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); |
Setați numele fișierului și extensia la inserarea obiectului OLE
Pachetul OLE este o “moștenire” și o modalitate “nedocumentată” de a stoca obiecte încorporate dacă nu se cunoaște un mânuitor OLE.
Versiunile timpurii Windows, cum ar fi Windows 3.1, 95 și 98 aveau o aplicație Packager.exe care putea fi folosită pentru a încorpora orice tip de date în document. Această aplicație este acum exclusă din Windows, dar Microsoft Word și alte aplicații folosesc încă pentru a încorpora date dacă manipulatorul OLE lipsește sau este necunoscut. Clasa OlePackage
permite utilizatorilor să acceseze proprietățile pachetului OLE.
Exemplul de cod următor arată cum se setează numele fișierului, extensia și numele de afișat pentru pachetul 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); | |
} | |
Acces la datele brute ale obiectelor COM
Utilizatorii pot accesa datele obiectelor OLE folosind diverse proprietăți și metode ale clasei OleFormat
. De exemplu, este posibil să se obțină datele brute ale obiectului OLE
sau calea și numele unui fișier sursă pentru obiectul OLE legat.
Exemplul de cod următor arată cum se obține datele brute ale obiectului OLE folosind metoda 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(); |
Introduce obiectul OLE ca un icon
Obiecte OLE pot fi introduse, de asemenea, în documente ca imagini.
Exemplul de cod următor arată cum să introduceți un obiect OLE ca o pictogramă. Pentru acest scop, clasa DocumentBuilder expune metoda 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."); |
Exemplul de cod următor arată cum se inserează un obiect OLE încorporat ca o pictogramă dintr-un flux în documentul:
// 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."); |
Introduceți videoclip online
Online video poate fi inserat în documentul Word de la Insert" > “Online video”" tab. Puteți introduce un videoclip online într-un document la locația curentă prin apelarea metodei InsertOnlineVideo.
Clasa DocumentBuilder introduce patru suprascrieri ale metodei respective. “Primul funcţionează cu cele mai populare resurse de video şi ia parametrul URL
al videoclipului ca parametru.” De exemplu, primul suprascriere suportă inserție simplă de videoclipuri online din YouTube și Vimeo resurse.
Exemplul următor de cod arată cum să inserezi un videoclip online din Vimeo într-un document:
// 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); |
A doua suprasarcină lucrează cu toate celelalte resurse video și preia codul încorporat HTML ca un parametru. Codul HTML pentru inserarea unui videoclip poate varia în funcție de furnizor, deci contactați furnizorul respectiv pentru detalii.
Exemplul de cod următor arată cum se introduce un videoclip online într-un document folosind un astfel de cod 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); |