固定ページ形式に変換する
Aspose.Words 独自のページレイアウトエンジンを実装します。 仕様に委任する前に、まず高いレベルで文書を議論する価値があります。 文書について考えるとき、ユーザーは、言葉、画像、表、チャートを含む紙の枚数をイメージします。 文書は、テキスト、スプレッドシート、スライド、CAD図面、フローチャートなど、さまざまなタイプで、基本的に異なるレイアウトを持つことができます。 ほとんどのアプリケーションでは、ドキュメントをプリンターに送信することができます。これは、ユーザーが実際にドキュメントの最終意図された外観を表示することができるときです。
各種アプリケーションに文書を表示
さまざまなドキュメント閲覧または公開アプリケーションにより、ユーザーは開くことができます(Adobe Acrobat, XPS ビューア)、特定のフォーマットの編集(Adobe InDesign)文書。 これらのアプリケーションは通常、いわゆる「固定ページ」形式の文書を生成します。 ドキュメントのコンテンツがページごとに配置される場所を正確に記述するドキュメントフォーマットです。 内部、PDF または XPS フォーマットには、ページ上のコンテンツのレイアウトを指定する、すべてのページの記述、および描画手順が含まれています。 これはイメージフォーマットに似ています。, コンテンツがラスターまたはベクトル形式で表示されている場所を記述します。.
対照的に、いくつかのテキスト編集アプリケーションは、ドキュメントのページの表示をサポートしていません。 例えば、 Microsoft Notepadは、単にテキストの表示、編集、印刷以外の非常に少ない機能をサポートしています。 重要な観察は、そのようなアプリケーションは、文書のページを表示したり、それらがどのように印刷されるかをユーザーに伝えることができないということです。 文書は、テキスト形式で保存することができ、他の多くのアプリケーションで開くことができます。 任意のファイルのバイナリコンテンツを表示できるアプリケーションを使用して、ドキュメントファイルに保存されているものを見ることができます。それは単なるテキストであり、それには他にはありません。
より洗練されたテキスト編集アプリケーションなど Microsoft Wordパッドは、画像のインサート、文字のフォーマット、段落マージン、間隔など、より多くのフォーマット機能をサポートするリッチテキストフォーマット(RTF)でドキュメントを保存します。 ただし、RTF形式には、ドキュメントのコンテンツのみが含まれているため、ページに関する情報はありません。
Microsoft Word 最も先進的なテキスト編集アプリケーションです Windows 今日。 ドキュメントのコンテンツを柔軟かつ広範囲に記述するDOCX形式でファイルをフォーマットし、ページサイズ、ドキュメントセクションのオリエンテーション、WYSIWYGアプリケーションであっても画面上のドキュメントページを表示することができます。 それにもかかわらず、ドキュメントのコンテンツがドキュメントファイルで利用可能なページに表示される方法に関する情報はまだありません。 ドキュメントファイルは、コンテンツ自体と、ドキュメントオブジェクトの関連性を互いに記述し、幾何学的な制約もあります。 その結果、文書を表示する前に、 Microsoft Word 情報そのものを計算します。 ページレイアウトが再生される場所です。
ページレイアウトとは
ドキュメントページレイアウトは、特定のオブジェクトがすべてのドキュメントオブジェクトのページにある場所を記述するデータ構造です。 また、オブジェクトは、フォントサイズ、シェーディング、またはエフェクトの描画などの外観に影響を与える特性を持っているので、オブジェクトがどこであるかだけでなく、それが占有するページの領域(s)だけでなく、他のオブジェクトが同じ領域(s)を上回らないように、複数のページに適用するかどうかを知る必要があります。
Aspose.Words 内部でページレイアウト機能を実装し、PDFなどの固定ページフォーマットをすべて作成できます。 XPS, さまざまなイメージフォーマット。 ページレイアウトがなければ、固定ページのドキュメントファイルに保存された情報は利用できず、これらのすべてのフォーマットはサポートされません。
ドキュメントとページレイアウトの関係は非常に簡単です。 ドキュメントが内容を説明するところ、対応するページレイアウトは、そのコンテンツの幾何学を記述します。 なお、ジオメトリを計算するコンテンツがないため、ページレイアウトはドキュメントなしでは存在できませんが、ページレイアウトなしでドキュメントが存在します。 たとえば、DOCX ドキュメントが RTF ドキュメントに変換されると、フォーマットが保存されていないため、ジオメトリを知ることは普通必要です。
ページレイアウトの作成
ページのレイアウトを作成することは、速度とメモリの面で、コストのかかる手順であることができます。 これは、いくつかの理由によるものです。
-
-
- ドキュメントにはたくさんのコンテンツが含まれている場合があります。何千ページにも表示する必要があります。 すべてのページ上のすべてのオブジェクトのジオメトリは、メモリリソースを消費する必要があります。
-
-
-
- ドキュメントには多くのルールがあり、ジオメトリに制約を置くことができます。 想定される計算時間は、すべての制約が満たされていることを確認することができます。
-
- いくつかの文書の機能、例えば、
NUMPAGES
フィールドは、計算時に利用できない将来のプロパティ値に対する再帰的な依存関係を作成します。 これは反復的な計算につながり、計算時間に加算します。
上記の理由により、 Aspose.Words 必要に応じてページレイアウトを作成します。 一般的な理由は、ドキュメントページをレンダリングするか、ページレイアウトで利用可能な情報に依存するフィールド値を取得するように要求されます。 ドキュメントを HTML にエクスポートできる理由が少ない。 HTMLは固定ページ形式ではありませんが、コンテンツオブジェクトのジオメトリを記述しませんが、それでも画像をサポートしています。 そのような画像は、作成された形状の形で作成することができます Microsoft Word 内側のテキストで。 たとえば、軸ラベル付きのチャートをイメージとしてHTMLにエクスポートできますが、これを行う前に Aspose.Words ラベルを表示する場所を知る必要があります。 以下のチャートの例を参照してください。
非幾何学的 プロパティ
幾何学的な情報を扱うことに加えて、ページレイアウトは色や境界スタイルを計算する責任もあります。 インスタグラム Microsoft Word, テキストカラーは、セルまたは段落の陰影色に基づいて、またはテキストが表示されるページの色に基づいて、色の選択を示唆する、自動として指定することができます。
ページのレイアウトは、テキストが現れ、その背後にどのコンテンツがレンダリングされるかを計算し、色の計算を有効にします。 ページレイアウトで行われる他の特定の計算があります。 たとえば、テーブルの横の境界線は、テキストの列でテーブル行が続くか、列を渡って壊れているかによって異なります。 行が列で最後にレンダリングされると、水平方向の代わりに一番下の境界が使用されます。
インスタグラム <span notrans="<span notrans=" Aspose.Words"="">????? ユーザーは、新しいページレイアウトを作成するか、既存のページを更新するかをリクエストできます。 これらの両方は、 UpdatePageLayout によって提供される方法 Document クラス。 ページレイアウトが存在しない場合、その必要性(例えば、ドキュメントが固定ページ形式にエクスポートされる場合)があります。 Aspose.Words このメソッドを自動的に呼び出します。 ただし、既にページレイアウトが存在している場合は、 Aspose.Words 更新に必要なリソースを消費しないようにするために、既存のリソースを使用します。 この場合、ユーザーは電話をかける必要があります。 UpdatePageLayout
メソッドは、ページレイアウトがドキュメントモデルで最新の状態にあるようにするためです。
動的構造
ページのレイアウトを作成するプロセスは、次の手順で構成されています。
-
-
- Conversion – ドキュメントモデルの内容を列挙し、対応するレイアウトオブジェクトを用意する。
-
-
-
- Build – ページ上の文書の内容を表すレイアウトオブジェクトを配置します。
-
-
-
- Reflow - ジオメトリの制約を満たすオブジェクトの配置を更新します。
-
- レイアウトオブジェクトを固定ページプレゼンテーションに写し出し、カラー情報を確定。
-
- シェイプコンテンツ*のビルドとリフロー - ドキュメントにネストされたテキストコンテンツの形状が含まれている場合は、ステップが必要です。
※ページレイアウトは、部分的に再構築できる動的構造です。 ドキュメントレイアウト構造を再構築せずにフィールド値を計算することは不可能な場合に特に必要です。 フィールドは、ページ上のオブジェクトの場所を参照することができます。同時に、フィールドの値自体も、参照されたオブジェクトの場所に影響を与えるページ上にレンダリングされます。 ページレイアウトは1つで作成できません。フィールドの値はまだページの位置時に利用できません。
典型的なシナリオを考えるとき NUMPAGES
フィールドはドキュメントの最初のページのフッターに表示されます。 このフィールドの値は、ページの総数です。 フィールドをページに配置するには、その値が知られる必要があります。 最初のページのみが現在構築されている場合は、ページ数の合計はまだ知られていません。 この場合、ページレイアウトはデフォルト値を使用し、その後はそのフィールドに戻り、実際の計算に応じて値を変更する必要があります。 しかし、フィールド値を変更すると、ページ上の他のドキュメントコンテンツに影響を及ぼす可能性があり、最終的には新しいページを追加したり、既存のページを削除したりすると、計算された値を上回る可能性があります。 既存のページレイアウトを更新することで解決できます。
レイアウトを作成する場合、設定も可能です。 LayoutOptions ページの文書の出力に影響を与えるプロパティ。
固定ページ形式への保存
ページのレイアウトが構築され、オブジェクトの幾何学とページ上の位置が計算されると、ドキュメントはサポートする固定ページ形式で保存できます。 Aspose.Wordsお問い合わせ ドキュメントを固定ページフォーマットに保存すると、これらのすべてのフォーマットに共通するレンダリングオプションが使用できます。 それらは制御することを可能にします:
- ページごとの文書保存の進捗(ページ単位)PageSavingCallbackお問い合わせ
- 数字レンダリングに使われる文字のセット(NumeralFormatお問い合わせ
- メタファイルプレーヤー (MetafileRenderingOptionsお問い合わせ 詳しくは、 ソリューション Windows メタファイル 記事。
- JPEGイメージを再圧縮するための品質レート、選択した保存形式に応じて、その値が若干異なる場合があります()JpegQualityお問い合わせ
- ベクトルグラフィックの最適化 Aspose.Words 出力()OptimizeOutputお問い合わせ
- グラフィックは、Tiff、Png、Bmp、Jpeg、Emfのフォーマットに保存するときのオプション()UseAntiAliasing, UseHighQualityRenderingお問い合わせ
- 文書をグレースケールで保存する()ColorModeお問い合わせ
- 図面ML形状とフォールバック形状のレンダリング間の切り替え()DmlRenderingModeお問い合わせ
- DMLエフェクトレンダリングモード間の切り替え()DmlEffectsRenderingModeお問い合わせ
下の例では、ドキュメントをJPEG形式に保存する方法を説明します。 Save
メソッドとレンダリングオプション: