Insert footnote to word using Java

Footnote is a supplementary description of the main text, it allows you to cite sources or explain a concept in detail and makes your document more professional. This article will give the below two examples of how to insert footnote to a word document in Java applications with the help of Free Spire.Doc for Java.

● Add a footnote to a paragraph in the word document.
● Insert a footnote behinds the specified text in the word document.

Installation
Method 1: Download Free Spire.Doc for Java and unzip it. Then add the Spire.Doc.jar file to your Java application as dependency.

Method 2: Directly add the jar dependency to maven project by adding the following configurations to the pom.xml.

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

Enter fullscreen mode Exit fullscreen mode

【Example 1】
Add a footnote to the first paragraph in word

<span>import</span> <span>com.spire.doc.*</span><span>;</span>
<span>import</span> <span>com.spire.doc.documents.*</span><span>;</span>
<span>import</span> <span>com.spire.doc.fields.*</span><span>;</span>
<span>import</span> <span>java.awt.*</span><span>;</span>
<span>public</span> <span>class</span> <span>WordFootnote</span> <span>{</span>
<span>public</span> <span>static</span> <span>void</span> <span>main</span><span>(</span><span>String</span><span>[]</span> <span>args</span><span>)</span> <span>throws</span> <span>Exception</span> <span>{</span>
<span>//load sample word document</span>
<span>Document</span> <span>doc</span> <span>=</span> <span>new</span> <span>Document</span><span>();</span>
<span>doc</span><span>.</span><span>loadFromFile</span><span>(</span><span>"sample.docx"</span><span>,</span> <span>FileFormat</span><span>.</span><span>Docx_2010</span><span>);</span>
<span>//get the first paragraph from the first section</span>
<span>Paragraph</span> <span>para</span> <span>=</span> <span>doc</span><span>.</span><span>getSections</span><span>().</span><span>get</span><span>(</span><span>0</span><span>).</span><span>getParagraphs</span><span>().</span><span>get</span><span>(</span><span>0</span><span>);</span>
<span>//Add footnote to the first paragraph</span>
<span>Footnote</span> <span>footnote</span> <span>=</span> <span>para</span><span>.</span><span>appendFootnote</span><span>(</span><span>FootnoteType</span><span>.</span><span>Footnote</span><span>);</span>
<span>//Add the text and format for it</span>
<span>TextRange</span> <span>text</span> <span>=</span> <span>footnote</span><span>.</span><span>getTextBody</span><span>().</span><span>addParagraph</span><span>().</span><span>appendText</span><span>(</span><span>"A study predict that polar bears may go extinct by 2100"</span><span>);</span>
<span>text</span><span>.</span><span>getCharacterFormat</span><span>().</span><span>setFontName</span><span>(</span><span>"Calibri"</span><span>);</span>
<span>text</span><span>.</span><span>getCharacterFormat</span><span>().</span><span>setFontSize</span><span>(</span><span>11</span><span>);</span>
<span>text</span><span>.</span><span>getCharacterFormat</span><span>().</span><span>setTextColor</span><span>(</span><span>new</span> <span>Color</span><span>(</span><span>220</span><span>,</span> <span>130</span><span>,</span> <span>10</span><span>));</span>
<span>//set the format for footnote marker</span>
<span>footnote</span><span>.</span><span>getMarkerCharacterFormat</span><span>().</span><span>setFontName</span><span>(</span><span>"Calibri"</span><span>);</span>
<span>footnote</span><span>.</span><span>getMarkerCharacterFormat</span><span>().</span><span>setFontSize</span><span>(</span><span>12</span><span>);</span>
<span>footnote</span><span>.</span><span>getMarkerCharacterFormat</span><span>().</span><span>setBold</span><span>(</span><span>true</span><span>);</span>
<span>footnote</span><span>.</span><span>getMarkerCharacterFormat</span><span>().</span><span>setTextColor</span><span>(</span><span>new</span> <span>Color</span><span>(</span><span>0</span><span>,</span> <span>0</span><span>,</span> <span>139</span><span>));</span>
<span>// save the document to file</span>
<span>doc</span><span>.</span><span>saveToFile</span><span>(</span><span>"Addfootnote.docx"</span><span>,</span> <span>FileFormat</span><span>.</span><span>Docx_2010</span><span>);</span>
<span>}</span>
<span>}</span>
<span>import</span> <span>com.spire.doc.*</span><span>;</span>
<span>import</span> <span>com.spire.doc.documents.*</span><span>;</span>
<span>import</span> <span>com.spire.doc.fields.*</span><span>;</span>
<span>import</span> <span>java.awt.*</span><span>;</span>


<span>public</span> <span>class</span> <span>WordFootnote</span> <span>{</span>
    <span>public</span> <span>static</span> <span>void</span> <span>main</span><span>(</span><span>String</span><span>[]</span> <span>args</span><span>)</span> <span>throws</span> <span>Exception</span> <span>{</span>
        <span>//load sample word document</span>
        <span>Document</span> <span>doc</span> <span>=</span> <span>new</span> <span>Document</span><span>();</span>
        <span>doc</span><span>.</span><span>loadFromFile</span><span>(</span><span>"sample.docx"</span><span>,</span> <span>FileFormat</span><span>.</span><span>Docx_2010</span><span>);</span>

        <span>//get the first paragraph from the first section</span>
        <span>Paragraph</span> <span>para</span> <span>=</span> <span>doc</span><span>.</span><span>getSections</span><span>().</span><span>get</span><span>(</span><span>0</span><span>).</span><span>getParagraphs</span><span>().</span><span>get</span><span>(</span><span>0</span><span>);</span>

        <span>//Add footnote to the first paragraph</span>
        <span>Footnote</span> <span>footnote</span> <span>=</span> <span>para</span><span>.</span><span>appendFootnote</span><span>(</span><span>FootnoteType</span><span>.</span><span>Footnote</span><span>);</span>

        <span>//Add the text and format for it</span>
        <span>TextRange</span> <span>text</span> <span>=</span> <span>footnote</span><span>.</span><span>getTextBody</span><span>().</span><span>addParagraph</span><span>().</span><span>appendText</span><span>(</span><span>"A study predict that polar bears may go extinct by 2100"</span><span>);</span>
        <span>text</span><span>.</span><span>getCharacterFormat</span><span>().</span><span>setFontName</span><span>(</span><span>"Calibri"</span><span>);</span>
        <span>text</span><span>.</span><span>getCharacterFormat</span><span>().</span><span>setFontSize</span><span>(</span><span>11</span><span>);</span>
        <span>text</span><span>.</span><span>getCharacterFormat</span><span>().</span><span>setTextColor</span><span>(</span><span>new</span> <span>Color</span><span>(</span><span>220</span><span>,</span> <span>130</span><span>,</span> <span>10</span><span>));</span>

        <span>//set the format for footnote marker</span>
        <span>footnote</span><span>.</span><span>getMarkerCharacterFormat</span><span>().</span><span>setFontName</span><span>(</span><span>"Calibri"</span><span>);</span>
        <span>footnote</span><span>.</span><span>getMarkerCharacterFormat</span><span>().</span><span>setFontSize</span><span>(</span><span>12</span><span>);</span>
        <span>footnote</span><span>.</span><span>getMarkerCharacterFormat</span><span>().</span><span>setBold</span><span>(</span><span>true</span><span>);</span>
        <span>footnote</span><span>.</span><span>getMarkerCharacterFormat</span><span>().</span><span>setTextColor</span><span>(</span><span>new</span> <span>Color</span><span>(</span><span>0</span><span>,</span> <span>0</span><span>,</span> <span>139</span><span>));</span>

        <span>// save the document to file</span>
        <span>doc</span><span>.</span><span>saveToFile</span><span>(</span><span>"Addfootnote.docx"</span><span>,</span> <span>FileFormat</span><span>.</span><span>Docx_2010</span><span>);</span>

    <span>}</span>
<span>}</span>
import com.spire.doc.*; import com.spire.doc.documents.*; import com.spire.doc.fields.*; import java.awt.*; public class WordFootnote { public static void main(String[] args) throws Exception { //load sample word document Document doc = new Document(); doc.loadFromFile("sample.docx", FileFormat.Docx_2010); //get the first paragraph from the first section Paragraph para = doc.getSections().get(0).getParagraphs().get(0); //Add footnote to the first paragraph Footnote footnote = para.appendFootnote(FootnoteType.Footnote); //Add the text and format for it TextRange text = footnote.getTextBody().addParagraph().appendText("A study predict that polar bears may go extinct by 2100"); text.getCharacterFormat().setFontName("Calibri"); text.getCharacterFormat().setFontSize(11); text.getCharacterFormat().setTextColor(new Color(220, 130, 10)); //set the format for footnote marker footnote.getMarkerCharacterFormat().setFontName("Calibri"); footnote.getMarkerCharacterFormat().setFontSize(12); footnote.getMarkerCharacterFormat().setBold(true); footnote.getMarkerCharacterFormat().setTextColor(new Color(0, 0, 139)); // save the document to file doc.saveToFile("Addfootnote.docx", FileFormat.Docx_2010); } }

Enter fullscreen mode Exit fullscreen mode

【Example 2】
Find “ecological niche” and insert a footnote behinds it in the word document

<span>import</span> <span>com.spire.doc.*</span><span>;</span>
<span>import</span> <span>com.spire.doc.documents.*</span><span>;</span>
<span>import</span> <span>com.spire.doc.fields.*</span><span>;</span>
<span>import</span> <span>java.awt.*</span><span>;</span>
<span>public</span> <span>class</span> <span>WordFootnote</span> <span>{</span>
<span>public</span> <span>static</span> <span>void</span> <span>main</span><span>(</span><span>String</span><span>[]</span> <span>args</span><span>)</span> <span>throws</span> <span>Exception</span> <span>{</span>
<span>//load sample word document</span>
<span>Document</span> <span>doc</span> <span>=</span> <span>new</span> <span>Document</span><span>();</span>
<span>doc</span><span>.</span><span>loadFromFile</span><span>(</span><span>"sample.docx"</span><span>,</span> <span>FileFormat</span><span>.</span><span>Docx_2010</span><span>);</span>
<span>//find text string Spire.Doc in the whole word document</span>
<span>TextSelection</span><span>[]</span> <span>selections</span> <span>=</span> <span>doc</span><span>.</span><span>findAllString</span><span>(</span><span>"ecological niche"</span><span>,</span> <span>false</span><span>,</span> <span>true</span><span>);</span>
<span>for</span> <span>(</span><span>TextSelection</span> <span>selection</span> <span>:</span> <span>selections</span><span>)</span> <span>{</span>
<span>TextRange</span> <span>range</span> <span>=</span> <span>selection</span><span>.</span><span>getAsOneRange</span><span>();</span>
<span>Paragraph</span> <span>para</span> <span>=</span> <span>range</span><span>.</span><span>getOwnerParagraph</span><span>();</span>
<span>//Add footnote behind the searched text strings</span>
<span>Footnote</span> <span>footnote</span> <span>=</span> <span>para</span><span>.</span><span>appendFootnote</span><span>(</span><span>FootnoteType</span><span>.</span><span>Footnote</span><span>);</span>
<span>int</span> <span>index</span> <span>=</span> <span>para</span><span>.</span><span>getChildObjects</span><span>().</span><span>indexOf</span><span>(</span><span>range</span><span>);</span>
<span>para</span><span>.</span><span>getChildObjects</span><span>().</span><span>insert</span><span>(</span><span>index</span> <span>+</span> <span>1</span><span>,</span> <span>footnote</span><span>);</span>
<span>//Add the text and format for it</span>
<span>TextRange</span> <span>text</span> <span>=</span> <span>footnote</span><span>.</span><span>getTextBody</span><span>().</span><span>addParagraph</span><span>().</span><span>appendText</span><span>(</span><span>"In ecology, a niche is the match of a species to a specific environmental condition."</span><span>);</span>
<span>text</span><span>.</span><span>getCharacterFormat</span><span>().</span><span>setFontName</span><span>(</span><span>"Calibri"</span><span>);</span>
<span>text</span><span>.</span><span>getCharacterFormat</span><span>().</span><span>setFontSize</span><span>(</span><span>10</span><span>);</span>
<span>text</span><span>.</span><span>getCharacterFormat</span><span>().</span><span>setTextColor</span><span>(</span><span>new</span> <span>Color</span><span>(</span><span>41</span><span>,</span> <span>167</span><span>,</span> <span>56</span><span>));</span>
<span>//set the format for footnote marker</span>
<span>footnote</span><span>.</span><span>getMarkerCharacterFormat</span><span>().</span><span>setFontName</span><span>(</span><span>"Calibri"</span><span>);</span>
<span>footnote</span><span>.</span><span>getMarkerCharacterFormat</span><span>().</span><span>setFontSize</span><span>(</span><span>12</span><span>);</span>
<span>footnote</span><span>.</span><span>getMarkerCharacterFormat</span><span>().</span><span>setBold</span><span>(</span><span>true</span><span>);</span>
<span>footnote</span><span>.</span><span>getMarkerCharacterFormat</span><span>().</span><span>setTextColor</span><span>(</span><span>new</span> <span>Color</span><span>(</span><span>0</span><span>,</span> <span>0</span><span>,</span> <span>139</span><span>));</span>
<span>// save the document to file</span>
<span>doc</span><span>.</span><span>saveToFile</span><span>(</span><span>"Addfootnote.docx"</span><span>,</span> <span>FileFormat</span><span>.</span><span>Docx_2010</span><span>);</span>
<span>}</span>
<span>}</span>
<span>}</span>
<span>import</span> <span>com.spire.doc.*</span><span>;</span>
<span>import</span> <span>com.spire.doc.documents.*</span><span>;</span>
<span>import</span> <span>com.spire.doc.fields.*</span><span>;</span>
<span>import</span> <span>java.awt.*</span><span>;</span>


<span>public</span> <span>class</span> <span>WordFootnote</span> <span>{</span>
    <span>public</span> <span>static</span> <span>void</span> <span>main</span><span>(</span><span>String</span><span>[]</span> <span>args</span><span>)</span> <span>throws</span> <span>Exception</span> <span>{</span>
        <span>//load sample word document</span>
        <span>Document</span> <span>doc</span> <span>=</span> <span>new</span> <span>Document</span><span>();</span>
        <span>doc</span><span>.</span><span>loadFromFile</span><span>(</span><span>"sample.docx"</span><span>,</span> <span>FileFormat</span><span>.</span><span>Docx_2010</span><span>);</span>

        <span>//find text string Spire.Doc in the whole word document</span>
        <span>TextSelection</span><span>[]</span> <span>selections</span> <span>=</span> <span>doc</span><span>.</span><span>findAllString</span><span>(</span><span>"ecological niche"</span><span>,</span> <span>false</span><span>,</span> <span>true</span><span>);</span>
        <span>for</span> <span>(</span><span>TextSelection</span> <span>selection</span> <span>:</span> <span>selections</span><span>)</span> <span>{</span>
            <span>TextRange</span> <span>range</span> <span>=</span> <span>selection</span><span>.</span><span>getAsOneRange</span><span>();</span>
            <span>Paragraph</span> <span>para</span> <span>=</span> <span>range</span><span>.</span><span>getOwnerParagraph</span><span>();</span>

            <span>//Add footnote behind the searched text strings</span>
            <span>Footnote</span> <span>footnote</span> <span>=</span> <span>para</span><span>.</span><span>appendFootnote</span><span>(</span><span>FootnoteType</span><span>.</span><span>Footnote</span><span>);</span>
            <span>int</span> <span>index</span> <span>=</span> <span>para</span><span>.</span><span>getChildObjects</span><span>().</span><span>indexOf</span><span>(</span><span>range</span><span>);</span>

            <span>para</span><span>.</span><span>getChildObjects</span><span>().</span><span>insert</span><span>(</span><span>index</span> <span>+</span> <span>1</span><span>,</span> <span>footnote</span><span>);</span>

            <span>//Add the text and format for it</span>
            <span>TextRange</span> <span>text</span> <span>=</span> <span>footnote</span><span>.</span><span>getTextBody</span><span>().</span><span>addParagraph</span><span>().</span><span>appendText</span><span>(</span><span>"In ecology, a niche is the match of a species to a specific environmental condition."</span><span>);</span>
            <span>text</span><span>.</span><span>getCharacterFormat</span><span>().</span><span>setFontName</span><span>(</span><span>"Calibri"</span><span>);</span>
            <span>text</span><span>.</span><span>getCharacterFormat</span><span>().</span><span>setFontSize</span><span>(</span><span>10</span><span>);</span>
            <span>text</span><span>.</span><span>getCharacterFormat</span><span>().</span><span>setTextColor</span><span>(</span><span>new</span> <span>Color</span><span>(</span><span>41</span><span>,</span> <span>167</span><span>,</span> <span>56</span><span>));</span>
            <span>//set the format for footnote marker</span>
            <span>footnote</span><span>.</span><span>getMarkerCharacterFormat</span><span>().</span><span>setFontName</span><span>(</span><span>"Calibri"</span><span>);</span>
            <span>footnote</span><span>.</span><span>getMarkerCharacterFormat</span><span>().</span><span>setFontSize</span><span>(</span><span>12</span><span>);</span>
            <span>footnote</span><span>.</span><span>getMarkerCharacterFormat</span><span>().</span><span>setBold</span><span>(</span><span>true</span><span>);</span>
            <span>footnote</span><span>.</span><span>getMarkerCharacterFormat</span><span>().</span><span>setTextColor</span><span>(</span><span>new</span> <span>Color</span><span>(</span><span>0</span><span>,</span> <span>0</span><span>,</span> <span>139</span><span>));</span>

            <span>// save the document to file</span>
            <span>doc</span><span>.</span><span>saveToFile</span><span>(</span><span>"Addfootnote.docx"</span><span>,</span> <span>FileFormat</span><span>.</span><span>Docx_2010</span><span>);</span>

        <span>}</span>
    <span>}</span>
<span>}</span>
import com.spire.doc.*; import com.spire.doc.documents.*; import com.spire.doc.fields.*; import java.awt.*; public class WordFootnote { public static void main(String[] args) throws Exception { //load sample word document Document doc = new Document(); doc.loadFromFile("sample.docx", FileFormat.Docx_2010); //find text string Spire.Doc in the whole word document TextSelection[] selections = doc.findAllString("ecological niche", false, true); for (TextSelection selection : selections) { TextRange range = selection.getAsOneRange(); Paragraph para = range.getOwnerParagraph(); //Add footnote behind the searched text strings Footnote footnote = para.appendFootnote(FootnoteType.Footnote); int index = para.getChildObjects().indexOf(range); para.getChildObjects().insert(index + 1, footnote); //Add the text and format for it TextRange text = footnote.getTextBody().addParagraph().appendText("In ecology, a niche is the match of a species to a specific environmental condition."); text.getCharacterFormat().setFontName("Calibri"); text.getCharacterFormat().setFontSize(10); text.getCharacterFormat().setTextColor(new Color(41, 167, 56)); //set the format for footnote marker footnote.getMarkerCharacterFormat().setFontName("Calibri"); footnote.getMarkerCharacterFormat().setFontSize(12); footnote.getMarkerCharacterFormat().setBold(true); footnote.getMarkerCharacterFormat().setTextColor(new Color(0, 0, 139)); // save the document to file doc.saveToFile("Addfootnote.docx", FileFormat.Docx_2010); } } }

Enter fullscreen mode Exit fullscreen mode

原文链接:Insert footnote to word using Java

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
Time always save the best for last.
时间总把最好的人留到最后
评论 抢沙发

请登录后发表评论

    暂无评论内容