OLE オブジェクトとオンライン ビデオの操作

OLE (Object Linking and Embedding) は、ユーザーがサードパーティのアプリケーションによって作成または編集された「オブジェクト」を含むドキュメントを操作できるテクノロジです。つまり、OLE を使用すると、編集アプリケーションがこれらの「オブジェクト」を別の編集アプリケーションにエクスポートし、追加のコンテンツとともにインポートすることができます。

この記事では、OLE オブジェクトの挿入とそのプロパティの設定、およびドキュメントへのオンライン ビデオの挿入について説明します。

OLE オブジェクトの挿入

OLE オブジェクトが必要な場合は、insert_ole_object メソッドを呼び出し、他のパラメータを使用して ProgId を明示的に渡します。

次のコード例は、OLE オブジェクトをドキュメントに挿入する方法を示しています。

OLE オブジェクト挿入時のファイル名と拡張子を設定する

OLE パッケージは、OLE ハンドラーが不明な場合に埋め込みオブジェクトを格納する従来の「文書化されていない」方法です。

Windows 3.1、95、98 などの初期の Windows バージョンには、あらゆる種類のデータをドキュメントに埋め込むために使用できる Packager.exe アプリケーションがありました。このアプリケーションは現在 Windows から除外されていますが、Microsoft Word およびその他のアプリケーションは、OLE ハンドラーが見つからない場合、または不明な場合にデータを埋め込むために引き続きこのアプリケーションを使用します。 OlePackage クラスを使用すると、ユーザーは OLE パッケージのプロパティにアクセスできます。

次のコード例は、OLE パッケージのファイル名、拡張子、および表示名を設定する方法を示しています。

OLE オブジェクトの生データへのアクセスを取得する

ユーザーは、OleFormat クラスのさまざまなプロパティとメソッドを使用して、OLE オブジェクト データにアクセスできます。たとえば、OLE オブジェクトの生データや、リンクされた OLE オブジェクトのソース ファイルのパスと名前を取得できます。

次のコード例は、get_raw_data メソッドを使用して OLE オブジェクトの生データを取得する方法を示しています。

OLE オブジェクトをアイコンとして挿入

OLE オブジェクトは、画像としてドキュメントに挿入することもできます。

次のコード例は、OLE オブジェクトをアイコンとして挿入する方法を示しています。この目的のために、DocumentBuilder クラスは insert_ole_object_as_icon メソッドを公開します。

次のコード例は、埋め込み OLE オブジェクトをアイコンとしてストリームからドキュメントに挿入する方法を示しています。

オンラインビデオを挿入

オンライン ビデオは、*[挿入] > [オンライン ビデオ]* タブから Word 文書に挿入できます。 メソッドを呼び出すことで、ドキュメントの現在の場所にオンライン ビデオを挿入できます。

DocumentBuilder クラスでは、このメソッドの 4 つのオーバーロードが導入されています。 1 つ目は最も一般的なビデオ リソースで動作し、ビデオの URL をパラメータとして受け取ります。たとえば、最初のオーバーロードは、YouTube および ヴィメオ リソースからのオンライン ビデオの単純な挿入をサポートします。

次のコード例は、Vimeo からドキュメントにオンライン ビデオを挿入する方法を示しています。

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")

2 番目のオーバーロードは他のすべてのビデオ リソースで動作し、埋め込み HTML コードをパラメータとして受け取ります。動画を埋め込むためのHTMLコードはプロバイダーによって異なる場合がありますので、詳しくは各プロバイダーにお問い合わせください。

次のコード例は、このような 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")