Trabalhando com objetos OLE e vídeo online

OLE (Object Linking and Embedding) é uma tecnologia pela qual os usuários podem trabalhar com documentos contendo “objetos” criados ou editados por aplicativos de terceiros. Ou seja, OLE permite que um aplicativo de edição exporte esses “objetos” para outro aplicativo de edição e depois importe-os com conteúdo adicional.

Neste artigo falaremos sobre como inserir um objeto OLE e definir suas propriedades, bem como inserir um vídeo online em um documento.

Inserir objeto OLE

Se você deseja um objeto OLE, chame o método insert_ole_object e passe o ProgId explicitamente com outros parâmetros.

O exemplo de código a seguir mostra como inserir objeto OLE em um documento:

Definir nome e extensão do arquivo ao inserir objeto OLE

O pacote OLE é uma forma herdada e “não documentada” de armazenar objetos incorporados se um manipulador OLE for desconhecido.

As primeiras versões do Windows, como Windows 3.1, 95 e 98, tinham um aplicativo Packager.exe que podia ser usado para incorporar qualquer tipo de dados ao documento. Este aplicativo agora está excluído do Windows, mas o Microsoft Word e outros aplicativos ainda o utilizam para incorporar dados se o manipulador OLE estiver ausente ou for desconhecido. A classe OlePackage permite que os usuários acessem as propriedades do pacote OLE.

O exemplo de código a seguir mostra como definir o nome do arquivo, a extensão e o nome de exibição do pacote OLE:

Obtenha acesso aos dados brutos do objeto OLE

Os usuários podem acessar dados de objetos OLE usando várias propriedades e métodos da classe OleFormat. Por exemplo, é possível obter os dados brutos do objeto OLE ou o caminho e o nome de um arquivo de origem para o objeto OLE vinculado.

O exemplo de código a seguir mostra como obter dados brutos do objeto OLE usando o método get_raw_data:

Insira objeto OLE como um ícone

Objetos OLE também podem ser inseridos em documentos como imagens.

O exemplo de código a seguir mostra como inserir objeto OLE como um ícone. Para isso, a classe DocumentBuilder expõe o método insert_ole_object_as_icon:

O exemplo de código a seguir mostra como inserir um objeto OLE incorporado como um ícone de um fluxo no documento:

Inserir vídeo on-line

O vídeo online pode ser inserido em um documento Word na guia “Inserir” > “Vídeo Online”. Você pode inserir um vídeo online em um documento no local atual chamando o método insert_online_video.

A classe DocumentBuilder introduz quatro sobrecargas deste método. O primeiro trabalha com os recursos de vídeo mais populares e toma como parâmetro o URL do vídeo. Por exemplo, a primeira sobrecarga suporta a inserção simples de vídeos online a partir de recursos YouTube e Vimeo.

O exemplo de código a seguir mostra como inserir um vídeo online do Vimeo em um 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")

A segunda sobrecarga funciona com todos os outros recursos de vídeo e usa o código HTML incorporado como parâmetro. O código HTML para incorporar um vídeo pode variar dependendo do fornecedor, portanto entre em contato com o respectivo fornecedor para obter detalhes.

O exemplo de código a seguir mostra como inserir um vídeo online em um documento usando esse código 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")