数式は、物理学、工学、コンピュータ科学、経済学の分野で一般的に使用される数式です。専門的な 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.6.0</version>
</dependency>
</dependencies>
Java で Word ドキュメントに数式を挿入する
Spire.Doc for Java では、OfficeMath.fromLatexMathCode(String latexMathCode) メソッドと OfficeMath.fromMathMLCode(String mathMLCode) メソッドを使用して、LaTeX コードと MathML コードから数式を生成できます。以下に詳細な手順を示します。
- LaTeX コードと MathML コードから2つの文字列配列を作成します。
- Document インスタンスを作成し、Document.addSection() メソッドを使用してそれにセクションを追加します。
- 文字列配列内の各 LaTeX コードを繰り返し処理します。
- OfficeMath.fromLatexMathCode() メソッドを使用して、LaTeX コードから数式を作成します。
- そのセクションに段落を追加し、Paragraph.getItems().add() メソッドを使用して段落に数式を追加します。
- 文字列配列の各 MathML コードを繰り返し処理します。
- OfficeMath.fromMathMLCode() メソッドを使用して、MathML コードから数式を作成します。
- そのセクションに段落を追加し、Paragraph.getItems().add() メソッドを使用して段落に数式を追加します。
- Document.saveToFile() メソッドを使用して、結果のドキュメントを保存します。
- Java
import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.omath.*;
public class AddMathEquations {
public static void main(String[] args){
//LaTeXコードから文字列配列を作成する
String[] latexMathCode = {
"x^{2}+\\sqrt{x^{2}+1}=2",
"\\cos (2\\theta) = \\cos^2 \\theta - \\sin^2 \\theta",
"k_{n+1} = n^2 + k_n^2 - k_{n-1}",
"\\frac {\\frac {1}{x}+ \\frac {1}{y}}{y-z}",
"\\int_0^ \\infty \\mathrm {e}^{-x} \\, \\mathrm {d}x",
"\\forall x \\in X, \\quad \\exists y \\leq \\epsilon",
"\\alpha, \\beta, \\gamma, \\Gamma, \\pi, \\Pi, \\phi, \\varphi, \\mu, \\Phi",
"A_{m,n} = \\begin{pmatrix} a_{1,1} & a_{1,2} & \\cdots & a_{1,n} \\\\ a_{2,1} & a_{2,2} & \\cdots & a_{2,n} \\\\ \\vdots & \\vdots & \\ddots & \\vdots \\\\ a_{m,1} & a_{m,2} & \\cdots & a_{m,n} \\end{pmatrix}",
};
//MathMLコードから文字列配列を作成する
String[] mathMLCode = {
"<math xmlns=\"http://www.w3.org/1998/Math/MathML\"><mi>a</mi><mo>≠</mo><mn>0</mn></math>",
"<math xmlns=\"http://www.w3.org/1998/Math/MathML\"><mi>a</mi><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><mi>b</mi><mi>x</mi><mo>+</mo><mi>c</mi><mo>=</mo><mn>0</mn></math>",
"<math xmlns=\"http://www.w3.org/1998/Math/MathML\"><mi>x</mi><mo>=</mo><mrow><mfrac><mrow><mo>−</mo><mi>b</mi><mo>±</mo><msqrt><msup><mi>b</mi><mn>2</mn></msup><mo>−</mo><mn>4</mn><mi>a</mi><mi>c</mi></msqrt></mrow><mrow><mn>2</mn><mi>a</mi></mrow></mfrac></mrow></math>",
};
//ドキュメントのインスタンスを作成する
Document doc = new Document();
//セクションを追加する
Section section = doc.addSection();
//セクションに段落を追加する
Paragraph textPara = section.addParagraph();
textPara.appendText("LaTeXコードから方程式を作成する");
textPara.applyStyle(BuiltinStyle.Heading_1);
textPara.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
//文字列配列内の各LaTeXコードに対して繰り返す
for (int i = 0; i < latexMathCode.length; i++)
{
//LaTeXコードから数式を作成する
OfficeMath officeMath = new OfficeMath(doc);
officeMath.fromLatexMathCode(latexMathCode[i]);
//数式をセクションに追加する
Paragraph paragraph = section.addParagraph();
paragraph.getItems().add(officeMath);
section.addParagraph();
}
//セクションに段落を追加する
textPara = section.addParagraph();
textPara.appendText("MathMLコードから方程式を作成する");
textPara.applyStyle(BuiltinStyle.Heading_1);
textPara.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
//文字列配列内の各MathMLコードに対して繰り返す
for (int j = 0; j < mathMLCode.length; j++)
{
//MathMLコードから数式を作成する
OfficeMath officeMath = new OfficeMath(doc);
officeMath.fromMathMLCode(mathMLCode[j]);
//数式をセクションに追加する
Paragraph paragraph = section.addParagraph();
paragraph.getItems().add(officeMath);
section.addParagraph();
}
//結果のドキュメントを保存する
doc.saveToFile("数式の追加.docx", FileFormat.Docx_2016);
doc.dispose();
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。