レンダリングの形 文書から分離
文書を処理するとき、一般的なタスクは、文書に含まれるすべての画像を抽出し、外部の場所にエクスポートすることです。 このタスクはシンプルになります。 Aspose.Words API, 既に画像データを抽出し、保存するための機能を提供します。 しかし、例えば、段落、矢印形状、小さな画像を含むテキストボックスなど、異なるタイプの描画オブジェクトによって表されるグラフィックコンテンツの他のタイプを同様に抽出したい場合があります。 個々のコンテンツ要素の組み合わせであるため、このオブジェクトをレンダリングする簡単な方法はありません。 また、コンテンツが単一のイメージのように見えるオブジェクトにまとめられたときにも遭遇することがあります。
Aspose.Words このタイプのコンテンツをレンダリングされたコンテンツと同じ方法で抽出するための機能を提供します。 この記事では、この機能を利用して文書の独立して図形をレンダリングする方法について説明します。
形のタイプ Aspose.Words
文書の描画レイヤー内のすべてのコンテンツは、 Shape または GroupShape ノード Aspose.Words ドキュメントオブジェクトモジュール(DOM)。 テキストボックス、画像、AutoShapes、OLEオブジェクトなど いくつかのフィールドも形状としてインポートされます。例えば、 INCLUDEPICTURE
フィールド。
シンプルなイメージは、 Shape ノード ShapeType.Imageお問い合わせ このシェイプノードは子ノードを持たないが、このシェイプノードに含まれる画像データは、 Shape.ImageData 宿泊施設 一方、多くの子ノードから形状を上げることもできます。 例えば、テキストボックスの形は、 ShapeType.TextBox プロパティは、次のような多くのノードから構成できます。 Paragraph そして、 Tableお問い合わせ ほとんどの形状は、 Paragraph そして、 Table block-level ノード。 これらは、本体に出現するノードと同じです。 形状は、直接インラインまたはアンカーに含まれている、いくつかの段落の常に部分です パラグラフ、 しかし、ドキュメントページ内のどこにでも「フローティング」します。
一緒にグループ化された図形も含めることができます。 Grouping は、 Microsoft Word 複数のオブジェクトを選択し、「クリック」をクリックGroup右クリックメニューの「」。
インスタグラム Aspose.Words, これらの形状のグループは、 GroupShape ノード。 これらは、グループ全体をイメージにレンダリングするのと同じ方法で呼び出すこともできます。
DOCX形式は、図やチャートなどの特殊な種類の画像を含むことができます。 これらの形状も、 Shape ノード Aspose.Words, また、画像としてレンダリングするための同様の方法を提供します。 設計により、形状がイメージでない限り、形状は子供として別の形状を含んでいません(ShapeType.Image)。 例えば、 Microsoft Word テキストボックスを別のテキストボックスに差し込むことはできません。
上記の形状タイプは、形状をレンダリングするための特別な方法を提供します。 ShapeRenderer クラス。 インスタンス ShapeRenderer クラスは、 Shape または GroupShape を通して GetShapeRenderer 方法か渡ることによって Shape 建設業者の方へ ShapeRenderer クラス。 このクラスは、以下の形状をレンダリングできるメンバーへのアクセスを提供します。
- ディスク上のファイル Save 方法積み過ぎ
- ストリーム使用 Save 方法積み過ぎ
- グラフィック オブジェクトを使用して RenderToSize そして、 RenderToScale メソッド
ファイルまたはストリームへのレンダリング
ザ・オブ・ザ・ Save メソッドは、形状をファイルやストリームに直接レンダリングするオーバーロードを提供します。 両方のオーバーロードは、両方のインスタンスを受け入れます ImageSaveOptions クラスは、形状をレンダリングするためのオプションを定義できます。 同じように作品 Document.Save メソッド。 このパラメータは必須ですが、null値を渡すことができます。カスタムオプションがないことを指定します。
形状は、任意のイメージ形式でエクスポートできます。 SaveFormat パンフレット たとえば、JPEGなどのラスターイメージとしてイメージをレンダリングできます。 SaveFormat.Jpeg enumeration、またはEMFなどのベクトルイメージとして、 SaveFormat.Emfお問い合わせ
下のコード例では、ドキュメントから別々にEMFイメージに形状をレンダリングし、ディスクに保存します。
下のコード例では、ドキュメントから別々にJPEGイメージをレンダリングし、ストリームに保存します。
ザ・オブ・ザ・ ImageSaveOptions class では、イメージのレンダリングをコントロールするさまざまなオプションを指定できます。 上記の機能は同じ方法で適用することができます GroupShape そして、 Shape ノード。
レンダリングする Graphics
オブジェクト
直接レンダリングする Graphics オブジェクトを使用すると、独自の設定と状態を定義できます。 Graphics オブジェクト。 一般的なシナリオは、直接形状をレンダリングすることを含みます Graphics オブジェクトは、 Windows フォームまたはビットマップ。 いつか Shape ノードがレンダリングされ、設定は形状の外観に影響します。 たとえば、形状を回転したり、スケールしたりできます。 RotateTransform または ScaleTransform メソッド Graphics オブジェクト。
下の例では、形状をレンダリングする方法を示します。 Graphics ドキュメントから別々にオブジェクトし、レンダリングされたイメージに回転を適用します。
同様に、 RenderToSize メソッド、 レンダートサイズ継承されたメソッド NodeRendererBase ドキュメントコンテンツのサムネイルを作成するのに便利です。 構造体で形状サイズを指定します。 ザ・オブ・ザ・ RenderToSize 方法は受け入れます Graphics オブジェクト、画像位置のXとY座標、および上に描画される画像(幅と高さ)のサイズ Graphics オブジェクト。
ザ・オブ・ザ・ Shape 特定のスケールにレンダリングできます。 ShapeRenderer.RenderToScale 継承されたメソッド NodeRendererBase クラス。 これは似ています Document.RenderToScale 同じ主要なパラメータを受け入れる方法。 これらの2つの方法の違いは、 ShapeRenderer.RenderToScale メソッドは、リテラルサイズではなく、レンダリング中に形状をスケールするフロート値を選択します。 フロート値が 1.0 に等しい場合、その元のサイズの 100% でレンダリングされる形状が原因となります。 0.5のフロート値が半減します。
形状イメージのレンダリング
ザ・オブ・ザ・ Shape クラスは、AutoShape、テキストボックス、フリーフォーム、OLEオブジェクト、ActiveXコントロール、画像などの描画レイヤーのオブジェクトを表します。 使い方 Shape クラスは、形状を作成または変更できます。 Microsoft Word ドキュメント。 形状の重要な特性は、その ShapeTypeお問い合わせ 異なるタイプの形状は、Word文書に異なる機能を持つことができます。 たとえば、ほとんどの図形はテキストのみを持つことができますが、画像やOLE形状のみが内部に画像を持つことができます。
次の例では、Shapeイメージをドキュメントから別々にJPEGイメージにレンダリングし、ディスクに保存する方法を示します。
形状サイズの取得
ザ・オブ・ザ・ ShapeRenderer クラスは、ピクセルの形状のサイズをピクセル単位で取得する機能も提供します。 GetSizeInPixels メソッド。 このメソッドは、2つのフロート(シングル)パラメータ–形状がレンダリングされるときに形状サイズの計算で使用されているスケールとDPIを受け付けます。 メソッドは、 Size 計算されたサイズの幅と高さを含むオブジェクト。 レンダリングされた出力から新しいBitmapを作成する場合など、レンダリングされた形状のサイズを事前に知る必要がある場合に便利です。
次の例では、描画される形状の幅と高さで新しいBitmapとグラフィックスオブジェクトを作成する方法を示します。
使用時 RenderToSize または RenderToScale メソッドは、レンダリングされたイメージサイズも返されます。 SizeF オブジェクト。 必要に応じて変数に割り当てられ、使うことができます。
ザ・オブ・ザ・ SizeInPoints プロパティは点で測定された形状サイズを返します(参照) ShapeRenderer)。 結果は、 SizeF
幅と高さを含むオブジェクト。