OLE オブジェクトとオンライン ビデオの操作
OLE (Object Linking and Embedding) は、ユーザーがサードパーティのアプリケーションによって作成または編集された「オブジェクト」を含むドキュメントを操作できるテクノロジです。つまり、OLE を使用すると、編集アプリケーションがこれらの「オブジェクト」を別の編集アプリケーションにエクスポートし、追加のコンテンツとともにインポートすることができます。
この記事では、OLE オブジェクトの挿入とそのプロパティの設定、およびドキュメントへのオンライン ビデオの挿入について説明します。
OLE オブジェクトの挿入
OLE オブジェクトが必要な場合は、insert_ole_object メソッドを呼び出し、他のパラメータを使用して ProgId を明示的に渡します。
次のコード例は、OLE オブジェクトをドキュメントに挿入する方法を示しています。
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET | |
doc = aw.Document() | |
builder = aw.DocumentBuilder(doc) | |
builder.insert_ole_object("http://www.aspose.com", "htmlfile", True, True, None) | |
doc.save(docs_base.artifacts_dir + "WorkingWithOleObjectsAndActiveX.insert_ole_object.docx") |
OLE オブジェクト挿入時のファイル名と拡張子を設定する
OLE パッケージは、OLE ハンドラーが不明な場合に埋め込みオブジェクトを格納する従来の「文書化されていない」方法です。
Windows 3.1、95、98 などの初期の Windows バージョンには、あらゆる種類のデータをドキュメントに埋め込むために使用できる Packager.exe アプリケーションがありました。このアプリケーションは現在 Windows から除外されていますが、Microsoft Word およびその他のアプリケーションは、OLE ハンドラーが見つからない場合、または不明な場合にデータを埋め込むために引き続きこのアプリケーションを使用します。 OlePackage
クラスを使用すると、ユーザーは OLE パッケージのプロパティにアクセスできます。
次のコード例は、OLE パッケージのファイル名、拡張子、および表示名を設定する方法を示しています。
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET | |
doc = aw.Document() | |
builder = aw.DocumentBuilder(doc) | |
stream = io.FileIO(docs_base.my_dir + "Zip file.zip") | |
shape = builder.insert_ole_object(stream, "Package", True, None) | |
olePackage = shape.ole_format.ole_package | |
olePackage.file_name = "filename.zip" | |
olePackage.display_name = "displayname.zip" | |
doc.save(docs_base.artifacts_dir + "WorkingWithOleObjectsAndActiveX.insert_ole_object_with_ole_package.docx") | |
stream.close() |
OLE オブジェクトの生データへのアクセスを取得する
ユーザーは、OleFormat
クラスのさまざまなプロパティとメソッドを使用して、OLE オブジェクト データにアクセスできます。たとえば、OLE
オブジェクトの生データや、リンクされた OLE オブジェクトのソース ファイルのパスと名前を取得できます。
次のコード例は、get_raw_data メソッドを使用して OLE オブジェクトの生データを取得する方法を示しています。
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET | |
oleShape = doc.get_child(aw.NodeType.SHAPE, 0, True).as_shape() | |
oleRawData = oleShape.ole_format.get_raw_data() |
OLE オブジェクトをアイコンとして挿入
OLE オブジェクトは、画像としてドキュメントに挿入することもできます。
次のコード例は、OLE オブジェクトをアイコンとして挿入する方法を示しています。この目的のために、DocumentBuilder クラスは insert_ole_object_as_icon メソッドを公開します。
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET | |
doc = aw.Document() | |
builder = aw.DocumentBuilder(doc) | |
builder.insert_ole_object_as_icon(docs_base.my_dir + "Presentation.pptx", False, docs_base.images_dir + "Logo icon.ico", "My embedded file") | |
doc.save(docs_base.artifacts_dir + "WorkingWithOleObjectsAndActiveX.insert_ole_object_as_icon.docx") |
次のコード例は、埋め込み OLE オブジェクトをアイコンとしてストリームからドキュメントに挿入する方法を示しています。
# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET | |
doc = aw.Document() | |
builder = aw.DocumentBuilder(doc) | |
stream = io.FileIO(docs_base.my_dir + "Presentation.pptx") | |
builder.insert_ole_object_as_icon(stream, "Package", docs_base.images_dir + "Logo icon.ico", "My embedded file") | |
doc.save(docs_base.artifacts_dir + "WorkingWithOleObjectsAndActiveX.insert_ole_object_as_icon_using_stream.docx") |
オンラインビデオを挿入
オンライン ビデオは、*[挿入] > [オンライン ビデオ]* タブから 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")