.NET で Word のリンクと参照を操作する方法

.NET で Word のリンクと参照を操作する方法

このガイドでは、ハイパーリンク、ブックマークへの相互参照、プロンプト値フィールド、および引用フィールドの挿入方法を示します Aspose.Words FOSS for .NET、使用して FieldHyperlink, FieldRef, FieldPageRef, FieldCitation、および他のリンクと参照 Field サブクラスは Aspose.Words.Fields 名前空間です。単純なハイパーリンクの挿入、ブックマークの作成と相互参照、フィールド更新時の値のプロンプト、そして文献情報源の引用について説明します。

ステップバイステップ ガイド

ステップ 1: パッケージをインストール

Aspose.Words FOSS for .NET はまだ NuGet パッケージを公開していません – 代わりにソースからライブラリをビルドしてください。https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git をクローンし、.NET SDK を使用して Release 構成で Aspose.Words.sln をビルドし、生成された Aspose.Words アセンブリをプロジェクトから参照します。このライブラリは .NET Standard 2.0 を対象としているため、.NET Framework 4.6.2+ および .NET 6/8/10 上で動作します。


ステップ 2: 必要なクラスをインポート

Document と DocumentBuilder 用の using Aspose.Words; ディレクティブ、そして FieldHyperlink、FieldRef、FieldPageRef、FieldNoteRef、FieldStyleRef、FieldSet、FieldAsk、FieldFillIn、FieldCitation、FieldBibliography 用の using Aspose.Words.Fields; ディレクティブを追加し、このガイドで取り上げるその他のフィールドクラスも同様に追加します。


ステップ 3: ハイパーリンクを挿入

シンプルなハイパーリンクの場合は、DocumentBuilder.InsertHyperlink(displayText, urlOrBookmark, isBookmark) を呼び出します――URL のターゲットには isBookmark: false を、同じ文書内のブックマークにリンクするには true を渡します。ショートカットが公開していないプロパティが必要な場合は、直接 FieldHyperlink を構築します:Address と SubAddress は対象の URL または文書内位置を保持し、ScreenTip はホバー時のツールチップを設定し、OpenInNewWindow と IsImageMap は表示フラグ、Target はブラウザフレームの名前を指定します。


ステップ 4: 参照用ブックマークを作成

ブックマークがカバーすべきコンテンツの前に DocumentBuilder.StartBookmark(bookmarkName) を呼び出し、後に DocumentBuilder.EndBookmark(bookmarkName) を呼び出します。両方の呼び出しで同じ名前を使用します。DocumentBuilder.MoveToBookmark(bookmarkName) は既に存在するブックマークへカーソルを移動させます――クロスリファレンスフィールドをその近くに挿入する前に位置へナビゲートするのに便利です。


ステップ 5: そのブックマークへのクロスリファレンスを挿入

FieldRef(REF フィールド)、FieldPageRef(PAGEREF)、および FieldNoteRef(NOTEREF)は、各々 BookmarkName プロパティを介して名前付きブックマークのコンテンツに解決します。InsertHyperlink を設定すると参照をクリック可能にし、InsertRelativePosition を設定すると参照されたテキスト自体ではなく相対位置(「上」/「下」)を報告します。FieldRef はさらに段落番号オプション—InsertParagraphNumber、InsertParagraphNumberInFullContext、InsertParagraphNumberInRelativeContext、NumberSeparator—と IncludeNoteOrComment をサポートします。FieldStyleRef(STYLEREF)は、ブックマークの代わりに指定された StyleName で書式設定された最も近い段落に解決し、SearchFromBottom によりフィールド位置から後方検索が可能です。FieldSet(SET)はブックマークされたテキスト値—BookmarkName と BookmarkText—を定義し、別の場所の REF フィールドがそれを解決できます。


ステップ 6: 更新時に値をプロンプト

FieldAsk (ASK)および FieldFillIn (FILLIN)フィールドを更新する人から値を要求します:設定 PromptText ユーザーに表示されるテキストへ、 DefaultResponse フォールバック値として、そして PromptOnceOnMailMerge メールマージ中の繰り返しプロンプトを制限するために。 FieldAsk さらに、その回答を以下に保存します BookmarkName 他のフィールドが参照できるようにします。自動フィールド更新の場合は、対話的にプロンプトを出すのではなく、プログラムで回答を提供してください;詳細は フィールドガイド この操作を行うコールバックインターフェースについてです。


ステップ 7: 外部またはリンクされたコンテンツを参照

FieldDde (DDE) と FieldDdeAuto (DDEAUTO) は、ProgId、SourceFullName、SourceItem を介して別のアプリケーションのコンテンツにリンクし、InsertAsText、InsertAsHtml、InsertAsPicture、InsertAsRtf、InsertAsUnicode、InsertAsBitmap が挿入された表現を選択し、AutoUpdate / IsLinked が更新動作を制御します。FieldLink (LINK) は OLE リンクに相当し、FormatUpdateType を追加します。FieldImport (IMPORT) と FieldIncludePicture (INCLUDEPICTURE) は、SourceFullName と GraphicFilter を介して外部グラフィックを取り込みます。FieldInclude (INCLUDE) と FieldIncludeText (INCLUDETEXT) は外部文書コンテンツを取り込み、BookmarkName は取り込む範囲を指定し、LockFields は更新を防止します;FieldIncludeText はさらに XML ソースを Encoding、MimeType、NamespaceMappings、XPath、XslTransformation を通じてサポートします。


ステップ 8: ビルディングブロックと用語集エントリを参照

FieldAutoText (AUTOTEXT)、FieldAutoTextList (AUTOTEXTLIST)、および FieldGlossary (GLOSSARY) はすべて、EntryName を介して名前付きビルディングブロックエントリを参照します;FieldAutoTextList はリストスタイルの表示のために ListStyle と ScreenTip を追加します。


ステップ 9: 引用と参考文献フィールドを挿入

FieldCitation (CITATION) と FieldBibliography (BIBLIOGRAPHY) ドキュメントの参考文献データから取得したコンテンツをレンダリングします。設定 FieldCitation.SourceTag (または代替の AnotherSourceTag) どのソースが引用されているかを識別し、使用します Prefix, Suffix, PageNumber, VolumeNumber、および Suppress* フラグ (SuppressAuthor, SuppressTitle, SuppressYear) 引用のフォーマット方法を制御します。 FieldBibliography.SourceTag, FilterLanguageId、そして FormatLanguageId レンダリングされた参考文献に表示されるソースとその言語を制御します。これらのフィールドは、対応する Source レコードが存在します – 参照してください 文献ガイド それらを構築するための。

一般的な問題と対策

REF、PAGEREF、または NOTEREF フィールドがエラー結果を示します その BookmarkName それが対象としているものは文書内に存在しません。ブックマークを作成してください DocumentBuilder.StartBookmark() / EndBookmark() フィールドを更新する前に。

ASK または FILLIN フィールドが無人更新をブロックします プログラムで回答を供給するコールバックが割り当てられていません。フィールド更新コールバックを、 フィールドガイド、または設定 DefaultResponse フィールドにフォールバック値が設定されるようにします。

CITATION または BIBLIOGRAPHY フィールドが空でレンダリングされます この SourceTag はどれとも一致しません Source ドキュメントの参考文献データにありません。該当するものを追加してください Source – 参照してください 参考文献ガイド.

DDE、DDEAUTO、または LINK フィールドが更新されません これらのフィールドは、元の Windows/OLE コンテキスト外では利用できない外部 OLE ソースを参照しています。そのような場合、フィールドに保存された結果を最後に知られている値として扱ってください。

InsertHyperlink で挿入されたハイパーリンクに、必要なプロパティが欠けています DocumentBuilder.InsertHyperlink() は、すべてのプロパティを公開しないショートカットです FieldHyperlink プロパティ。構築するか取得してください FieldHyperlink 直接プロパティを設定するために、例えば ScreenTip or IsImageMap.

よくある質問

FieldRef と FieldStyleRef の違いは何ですか?

FieldRef は名前付きブックマーク (BookmarkName) の内容に解決されます。一方、FieldStyleRef はブックマークに依存せず、指定された StyleName で書式設定された最も近い段落に解決されます。

フィールドを手作業で構築せずに、シンプルなハイパーリンクを挿入するにはどうすればよいですか?

DocumentBuilder.InsertHyperlink(displayText, urlOrBookmark, isBookmark) を呼び出します。

これらのリンクおよび参照フィールドクラスは、他のフィールドとは別の名前空間にありますか?

いいえ――FieldHyperlink、FieldRef、FieldCitation、およびここで取り上げた残りのクラスは、すべて Aspose.Words.Fields 名前空間内の通常の Field サブクラスです。この名前空間は他のすべてのフィールドタイプでも使用されています。

引用フィールドは文献データモデルとどのように関係していますか?

FieldCitation and FieldBibliography 検索してコンテンツをレンダリングする SourceTag に対して Source で記述されたレコード 文献ガイド — これらのフィールドクラスはレンダリングを処理し、 Source and Contributor クラスは基礎データを保持します。

参照する前にブックマークを作成するにはどうすればよいですか?

コンテンツの前に DocumentBuilder.StartBookmark(bookmarkName) を呼び出し、後に DocumentBuilder.EndBookmark(bookmarkName) を呼び出します。両方の呼び出しで同じ名前を使用してください。

参照

 日本語