Lavorare con oggetti OLE e video online

OLE (Object Linking and Embedding) è una tecnologia mediante la quale gli utenti possono lavorare con documenti contenenti “oggetti” creati o modificati da applicazioni di terze parti. Cioè, OLE consente a un’applicazione di modifica di esportare questi “oggetti” in un’altra applicazione di modifica e quindi di importarli con contenuto aggiuntivo.

In questo articolo parleremo dell’inserimento di un oggetto OLE e dell’impostazione delle sue proprietà, nonché dell’inserimento di un video online in un documento.

Inserisci oggetto OLE

Se desideri un oggetto OLE, chiama il metodo insert_ole_object e passagli esplicitamente il ProgId con altri parametri.

L’esempio di codice seguente mostra come inserire un oggetto OLE in un documento:

Imposta il nome e l’estensione del file durante l’inserimento dell’oggetto OLE

Il pacchetto OLE è un modo legacy e “non documentato” per archiviare oggetti incorporati se un gestore OLE è sconosciuto.

Le prime versioni di Windows come Windows 3.1, 95 e 98 avevano un’applicazione Packager.exe che poteva essere utilizzata per incorporare qualsiasi tipo di dati nel documento. Questa applicazione è ora esclusa da Windows, ma Microsoft Word e altre applicazioni la utilizzano ancora per incorporare dati se il gestore OLE manca o è sconosciuto. La classe OlePackage consente agli utenti di accedere alle proprietà del pacchetto OLE.

Nell’esempio di codice seguente viene illustrato come impostare il nome file, l’estensione e il nome visualizzato per il pacchetto OLE:

Ottieni l’accesso ai dati grezzi dell’oggetto OLE

Gli utenti possono accedere ai dati degli oggetti OLE utilizzando varie proprietà e metodi della classe OleFormat. Ad esempio, è possibile ottenere i dati grezzi dell’oggetto OLE o il percorso e il nome di un file sorgente per l’oggetto OLE collegato.

L’esempio di codice seguente mostra come ottenere i dati grezzi dell’oggetto OLE utilizzando il metodo get_raw_data:

Inserisci oggetto OLE come icona

Gli oggetti OLE possono anche essere inseriti nei documenti come immagini.

Nell’esempio di codice seguente viene illustrato come inserire oggetto OLE come icona. A questo scopo la classe DocumentBuilder espone il metodo insert_ole_object_as_icon:

L’esempio di codice seguente mostra come inserire un oggetto OLE incorporato come icona da un flusso nel documento:

Inserisci video in linea

Il video online può essere inserito nel documento Word dalla scheda “Inserisci” > “Video online”. Puoi inserire un video online in un documento nella posizione corrente chiamando il metodo insert_online_video.

La classe DocumentBuilder introduce quattro sovraccarichi di questo metodo. Il primo funziona con le risorse video più popolari e prende come parametro il URL del video. Ad esempio, il primo sovraccarico supporta il semplice inserimento di video online da risorse Youtube e Vimeo.

Il seguente esempio di codice mostra come inserire un video online da Vimeo in un documento:

doc = aw.Document()
builder = aw.DocumentBuilder(doc)

# Pass direct url from youtu.be.
url = "https://www.youtube.com/watch?v=t_1LYZ102RA"

width = 360
height = 270

shape = builder.insert_online_video(url, width, height)

doc.save(docs_base.artifacts_dir + "WorkingWithOleObjectsAndActiveX.insert_online_video.docx")

Il secondo sovraccarico funziona con tutte le altre risorse video e accetta il codice HTML incorporato come parametro. Il codice HTML per incorporare un video può variare a seconda del fornitore, quindi contatta il rispettivo fornitore per i dettagli.

Il seguente esempio di codice mostra come inserire un video online in un documento utilizzando tale codice HTML:

doc = aw.Document()
builder = aw.DocumentBuilder(doc)

# Shape width/height.
width = 360
height = 270

# Poster frame image.
f = open(docs_base.images_dir + "Logo.jpg", "rb")
imageBytes = f.read()
f.close()

# Visible url
vimeoVideoUrl = "https://vimeo.com/52477838"

# Embed Html code.
vimeoEmbedCode = ""

builder.insert_online_video(vimeoVideoUrl, vimeoEmbedCode, imageBytes, width, height)

doc.save(docs_base.artifacts_dir + "WorkingWithOleObjectsAndActiveX.insert_online_video_with_embed_html.docx")