このクイック チュートリアルには、Python で Word 文書からすべての画像を抽出する方法に関する情報が含まれています。環境を構成するためのすべてのリソースを提供し、クラス名、メソッド、およびプロパティを含むタスクを完了するために必要な重要な API 構造を紹介します。手順に従って、DOCX ファイルから画像を抽出し、画像タイプ PNG、JPG などとして保存するように、Python で Word 文書から画像を抽出する 完全なプログラムを作成できます。ディスク上。
Python で Word ファイルから画像を抽出する手順
- .NET 経由の Python 用 Aspose.Words を使用して画像を抽出するように環境を構成する
- Document クラス オブジェクトを使用して、画像を含むソース Word ファイルを読み込みます
- get_child_nodes() メソッドを使用して、読み込まれたドキュメントからすべての形状のリストを取得します
- 形状コレクション内のすべての要素を解析し、画像を検出します
- 形状コレクションで検出された各画像に一意のファイル名を作成します
- 抽出した画像を一意の名前でディスクに保存します
これらの手順では、Python で Word 文書から画像を抽出する プロセスについて説明し、環境構成とプログラムを作成する手順を共有します。環境を確立したら、Document クラス オブジェクトを使用して画像を含む Word ファイルを読み込み、そこからすべての図形のコレクションを取得します。 Shape クラスには画像を検出するメソッドがあるため、画像を抽出して、指定した名前でディスクに保存できます。
Python で Word 文書から写真を抽出するコード
import aspose.words as aw | |
# Load the license | |
wordProtected = aw.License() | |
wordProtected.set_license("Aspose.Total.lic") | |
# Load a document | |
wordDocument = aw.Document("WordFileWithImages.docx") | |
# Get shapes collection | |
allShapes = wordDocument.get_child_nodes(aw.NodeType.SHAPE, True) | |
# Declare counter for images | |
index = 0 | |
# Iterate through all the shapes to detect and save images | |
for shape in allShapes: | |
# Type cast the node object to shape | |
shape = shape.as_shape() | |
if(shape.has_image): | |
index = index + 1 | |
# Prepare file name using the image counter and image type in the shape object | |
image_file_name = f"File.extract_images.{index}{aw.FileFormatUtil.image_type_to_extension(shape.image_data.image_type)}" | |
# Save the extracted image on the disk | |
shape.image_data.save(image_file_name) | |
print ("Images extracted successfully from the Word file") |
ここでは、保護されたファイルのパスワードの提供、エンコーディングの設定、警告の添付などの多くの機能を持つ Document クラス オブジェクトを使用してソース ファイルをロードすることにより、Python で Word から画像を抽出する プロセスを示すコードを示します。読み込みプロセスを制御するためのコールバック。同様に、get_child_nodes() メソッドを使用して形状を抽出しますが、ヘッダー、フッター、テーブル、コメント、脚注、本文などの他のノードも取得できます。
この記事では、Python で Word ファイルからすべての写真を取得する方法について説明しました。 Word ファイルに写真を挿入するプロセスを知りたい場合は、Pythonを使用してWordに画像を挿入する方法 の記事を参照してください。