チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»Java»Spire.Doc for Java»ハイパーリンク»Java:Word ドキュメントにハイパーリンクを追加する方法
2023-05-24

Java:Word ドキュメントにハイパーリンクを追加する方法

ハイパーリンクは、デジタル文書において、2つのものを結びつけるために使用する最も重要なツールです。読者が Word ドキュメント内のハイパーリンクをクリックすると、ドキュメント内の別の場所、別のファイルやウェブサイト、または新しい電子メールメッセージに移動することができます。この記事では、Spire.Doc for Java を使用して、Java で Word ドキュメントにハイパーリンクを追加する方法について紹介します。

Spire.Doc for Java をインストールします

まず、Spire. Doc for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url> https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.doc</artifactId>
        <version>11.4.2</version>
    </dependency>
</dependencies>

Word 文書に段落を追加する際にハイパーリンクを追加する

Spire.Doc for Java では、段落内のテキストや画像に Web リンク、メールリンク、ファイルリンク、ブックマークリンクを追加する Paragraph.appendHyperlink() メソッドを提供しています。以下は、その詳細な手順です。

  • Document のオブジェクトを作成します。
  • ドキュメントにセクションと段落を追加します。
  • Paragraph.appendHyerplink(String link, String text, HyperlinkType type) メソッドを使用して、テキストに基づくハイパーリンクを挿入します。
  • Paragraph.appendPicture() メソッドを使用して、段落に画像を追加します。
  • Paragraph.appendHyerplink(String link, DocPicture picture, HyperlinkType type) メソッドを使用して、画像にハイパーリンクを追加します。
  • Document.saveToFile() メソッドを使用してドキュメントを保存します。
  • Java
import com.spire.doc.BookmarkStart;
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.Section;
import com.spire.doc.documents.BreakType;
import com.spire.doc.documents.HyperlinkType;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.DocPicture;

public class AddHyperlinks {

    public static void main(String[] args) {

        //Wordドキュメントを作成する
        Document doc = new Document();

        //セクションを追加する
        Section section = doc.addSection();

        //段落を追加する
        Paragraph paragraph = section.addParagraph();
        paragraph.getStyle().getCharacterFormat().setFontName("BIZ UDGothic");
        paragraph.appendBreak(BreakType.Line_Break);
        paragraph.appendHyperlink("https://www-iceblue.com/", "ホーム ページ", HyperlinkType.Web_Link);

        //改行を追加する
        paragraph.appendBreak(BreakType.Line_Break);
        paragraph.appendBreak(BreakType.Line_Break);

        //メールリンクを追加する
        paragraph.appendHyperlink("mailto:このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。", "メールで問い合わせる。", HyperlinkType.E_Mail_Link);

        //改行を追加する
        paragraph.appendBreak(BreakType.Line_Break);
        paragraph.appendBreak(BreakType.Line_Break);

        //ファイルリンクを追加する
        String filePath = "C:/報告.xlsx";
        paragraph.appendHyperlink(filePath, "クリックすると報告が開きます。", HyperlinkType.File_Link);

        //改行を追加する
        paragraph.appendBreak(BreakType.Line_Break);
        paragraph.appendBreak(BreakType.Line_Break);

        //別のセクションを追加し、ブックマークを作成する
        Section section2 = doc.addSection();
        Paragraph bookmarkParagraph = section2.addParagraph();
        bookmarkParagraph.appendText("ここにブックマークがあります。");
        BookmarkStart start = bookmarkParagraph.appendBookmarkStart("myBookmark");
        bookmarkParagraph.getItems().insert(0, start);
        bookmarkParagraph.appendBookmarkEnd("myBookmark");

        //ブックマークにリンクする
        paragraph.appendHyperlink("myBookmark", "このドキュメント内の場所にジャンプします。", HyperlinkType.Bookmark);

        //改行を追加する
        paragraph.appendBreak(BreakType.Line_Break);
        paragraph.appendBreak(BreakType.Line_Break);

        //画像リンクを追加する
        String imagePath = "C:/ロゴ.png";
        DocPicture picture = paragraph.appendPicture(imagePath);
        paragraph.appendHyperlink("https://www.e-iceblue.com/", picture, HyperlinkType.Web_Link);

        //ドキュメントを保存する
        doc.saveToFile("ハイパーリンクの追加.docx", FileFormat.Docx_2013);
    }
}

Java:Word ドキュメントにハイパーリンクを追加する方法

Word 文書で既存のテキストにハイパーリンクを挿入する

ドキュメント内の既存のテキストにハイパーリンクを追加するのは、少し複雑です。まず対象となる文字列を見つけ、段落内の文字列をハイパーリンクフィールドに置き換える必要があります。以下はその手順です。

  • Document のオブジェクトを作成します。
  • Document.loadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • Document.findAllString() メソッドを使用して、ドキュメント内の対象文字列の出現箇所をすべて検索し、特定の文字列をコレクションからそのインデックスで取得します。
  • その文字列が属する段落と段落内の位置を取得します。
  • その段落から文字列を削除します。
  • ハイパーリンクフィールドを作成し、その文字列がある位置に挿入します。
  • Document.saveToFle() メソッドを使用してドキュメントを保存します。
  • Java
import com.spire.doc.Document;
import com.spire.doc.FieldType;
import com.spire.doc.FileFormat;
import com.spire.doc.Hyperlink;
import com.spire.doc.documents.*;
import com.spire.doc.fields.Field;
import com.spire.doc.fields.FieldMark;
import com.spire.doc.fields.TextRange;
import com.spire.doc.interfaces.IParagraphBase;
import com.spire.doc.interfaces.ITextRange;

import java.awt.*;

public class AddHyperlinksToExistingText {

    public static void main(String[] args) {

        //Documentのオブジェクトを作成する
        Document document = new Document();

        //Wordドキュメントを読み込む
        document.loadFromFile("C:/サンプル.docx");

        //ドキュメント内で「二酸化炭素」という文字列が出現する箇所をすべて探す
        TextSelection[] selections = document.findAllString("二酸化炭素", true, true);

        //最初の出現を得る
        TextRange range = selections[0].getAsOneRange();

        //そのテキストが含まれる段落を取得する
        Paragraph paragraph = range.getOwnerParagraph();

        //このテキストの段落内での位置を取得する
        int index = paragraph.getItems().indexOf(range);

        //このテキストを段落から削除する
        paragraph.getItems().remove(range);

        //ハイパーリンク フィールドを作成する
        Field field = new Field(document);
        field.setType(FieldType.Field_Hyperlink);
        Hyperlink hyperlink = new Hyperlink(field);
        hyperlink.setType(HyperlinkType.Web_Link);
        hyperlink.setUri("https://ja.wikipedia.org/wiki/%E4%BA%8C%E9%85%B8%E5%8C%96%E7%82%AD%E7%B4%A0");
        paragraph.getItems().insert(index, field);

        //段落にフィールドマーク「start」を挿入する
        IParagraphBase item = document.createParagraphItem(ParagraphItemType.Field_Mark);
        FieldMark start = (FieldMark)item;
        start.setType(FieldMarkType.Field_Separator);
        paragraph.getItems().insert(index + 1, start);

        //2つのフィールドマークの間にテキスト範囲を挿入する
        ITextRange textRange = new TextRange(document);
        textRange.setText("二酸化炭素");
        textRange.getCharacterFormat().setFontName(range.getCharacterFormat().getFontName());
        textRange.getCharacterFormat().setFontSize(range.getCharacterFormat().getFontSize());
        textRange.getCharacterFormat().setBold(range.getCharacterFormat().getBold());
        textRange.getCharacterFormat().setTextColor(Color.blue);
        textRange.getCharacterFormat().setUnderlineStyle(UnderlineStyle.Single);
        paragraph.getItems().insert(index + 2, textRange);

        //段落にフィールドマーク「end」を挿入する
        IParagraphBase item2 = document.createParagraphItem(ParagraphItemType.Field_Mark);
        FieldMark end = (FieldMark)item2;
        end.setType(FieldMarkType.Field_End);
        paragraph.getItems().insert(index + 3, end);

        //ドキュメントを保存する
        document.saveToFile("既存のテキストにハイパーリンクの挿入.docx", FileFormat.Docx_2013);
    }
}

Java:Word ドキュメントにハイパーリンクを追加する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 449 times