Werken met OLE-objecten en online video

OLE (Object Linking and Embedding) is een technologie waarmee gebruikers kunnen werken met documenten met “objecten” gemaakt of bewerkt door toepassingen van derden. Dat wil zeggen, OLE staat een bewerkingstoepassing toe om deze “objecten” naar een andere bewerkingsapplicatie te exporteren en ze vervolgens te importeren met extra inhoud.

In dit artikel zullen we het hebben over het invoegen van een OLE object en het instellen van zijn eigenschappen, evenals het invoegen van een online video in een document.

OLE invoegen Doel

Als u OLE Object wilt, bel dan de InsertOleObject methode en geef het ProgId expliciet met andere parameters.

Het volgende codevoorbeeld laat zien hoe OLE in te voegen Object in een 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);

Bestandsnaam en -extensie instellen bij het invoegen van OLE-object

OLE pakket is een legacy en “undocumented” manier om embedded objecten op te slaan als een OLE handler is onbekend.

Vroeg Windows versies zoals Windows 3.1, 95 en 98 hadden een Packager. exe-toepassing die kan worden gebruikt om elk type gegevens in het document in te sluiten. Deze aanvraag is nu uitgesloten van Windows, maar Microsoft Word en andere toepassingen gebruiken het nog steeds om gegevens in te sluiten als de OLE handler ontbreekt of onbekend is. De OlePackage klasse geeft gebruikers toegang tot de OLE Package eigenschappen.

Het volgende voorbeeld van code laat zien hoe u de bestandsnaam, extensie en weergavenaam voor OLE Package kunt instellen:

// 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);
}

Toegang krijgen tot OLE-object ruwe gegevens

Gebruikers kunnen toegang krijgen tot OLE object gegevens met behulp van verschillende eigenschappen en methoden van de OleFormat Klasse. Het is bijvoorbeeld mogelijk om de OLE object ruwe gegevens of het pad en de naam van een bronbestand voor het gekoppelde OLE-object.

Het volgende voorbeeld van code laat zien hoe je OLE krijgt Object ruwe gegevens met behulp van de GetRawData methode:

// 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 invoegen Object als pictogram

OLE objecten kunnen ook als afbeelding in documenten worden geplaatst.

Het volgende voorbeeld van code laat zien hoe OLE Object als pictogram in te voegen. Met dit doel beoogt de DocumentBuilder klasse stelt de InsertOleObjectAsIcon methode:

// 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.");

Het volgende voorbeeld van code laat zien hoe je een ingebed OLE-object invoegt als pictogram vanuit een stroom in het 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);
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.");

Online video invoegen

Online video kan worden ingevoegd in Word document van de “Insert” > “Online Video” tab. U kunt een online video in een document op de huidige locatie door te bellen naar de InsertOnlineVideo methode.

De DocumentBuilder klasse introduceert vier overbelastingen van deze methode. De eerste werkt met de meest populaire videobronnen en neemt de URL van de video als parameter. Bijvoorbeeld, de eerste overbelasting ondersteunt eenvoudige inbrenging van online video’s van YouTube en Vimeo middelen.

Het volgende voorbeeld van code laat zien hoe u een online video van Vimeo in een 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);

De tweede overbelasting werkt met alle andere videobronnen en neemt embedded HTML-code als parameter. De HTML-code voor het insluiten van een video kan variëren afhankelijk van de provider, dus neem contact op met de betreffende provider voor details.

Het volgende voorbeeld van code laat zien hoe je een online video in een document plaatst met behulp van een dergelijke HTML-code:

// 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);