数式は、物理学、工学、コンピュータ科学、経済学の分野で一般的に使用される数式です。専門的な 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 (2theta) = 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 日間有効な一時ライセンスを取得してください。