Práce s OLE objekty a online video

OLE (Object Linking and Embedding) je technologie, pomocí které mohou uživatelé pracovat s dokumenty obsahujícími “objekty” vytvořené nebo editované aplikacemi třetích stran. To znamená, že OLE umožňuje editační aplikaci exportovat tyto “objekty” do jiné editační aplikace a pak je importovat s dodatečným obsahem.

V tomto článku budeme hovořit o vložení OLE objektu a nastavení jeho vlastností, stejně jako vložení online videa do dokumentu.

Vložit OLE Předmět

Pokud chcete OLE Objekt, volejte InsertOleObject způsob a předat ProgId explicitně s jinými parametry.

Následující příklad kódu ukazuje, jak vložit OLE Objekt do dokumentu:

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

Nastavit název a příponu souboru při vkládání OLE objektu

OLE balíček je odkaz a “nedokumentovaný” způsob uložení vložených objektů, pokud je OLE manipulátor neznámý.

Brzy Windows verze jako např. Windows 3.1, 95 a 98 měli Balič. exe aplikace, která by mohla být použita k vložení jakéhokoli typu dat do dokumentu. Tato žádost je nyní vyloučena Windows, ale Microsoft Word a další aplikace je stále používají k vložení dat, pokud OLE manipulátor chybí nebo není znám. • OlePackage třída umožňuje uživatelům přístup k vlastnostem OLE balíčku.

Následující příklad kódu ukazuje, jak nastavit název souboru, příponu a název displeje pro 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);
}

Získejte přístup k Raw data objektu OLE

Uživatelé mohou přistupovat k OLE objektům pomocí různých vlastností a metod OleFormat třída. Například, je možné získat OLE objekt surových dat nebo cesta a název zdrojového souboru pro propojený OLE objekt.

Následující příklad kódu ukazuje, jak získat OLE Objekt surové údaje pomocí GetRawData metoda:

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

Vložit OLE Objekt jako ikona

OLE objekty mohou být také vloženy do dokumentů jako obrázky.

Následující příklad kódu ukazuje, jak vložit OLE Object jako ikonu. Za tímto účelem DocumentBuilder třída odhaluje InsertOleObjectAsIcon metoda:

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

Následující příklad kódu ukazuje, jak vložit vložený OLE objekt jako ikonu z proudu do dokumentu:

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

Vložit online video

Online video lze vložit do dokumentu Word z záložky “Insert” > “Online Video”. Můžete vložit online video do dokumentu na aktuálním místě voláním InsertOnlineVideo metoda.

DocumentBuilder třída zavádí čtyři přetížení této metody. První pracuje s nejpopulárnější video zdroje a bere URL video jako parametr. Například první přetížení podporuje jednoduché vložení online videí z YouTube a Vimeo zdroje.

Následující příklad kódu ukazuje, jak vložit online video z Vimeo do dokumentu:

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

Druhé přetížení pracuje se všemi ostatními video zdroji a bere vložený HTML kód jako parametr. HTML kód pro vložení videa se může lišit v závislosti na poskytovateli, takže kontaktujte příslušného poskytovatele pro podrobnosti.

Následující příklad kódu ukazuje, jak vložit online video do dokumentu pomocí takového HTML kódu:

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