• Java 插入公式到PPT幻灯片


    owerPoint幻灯片中可插入公式,用于在幻灯片放映时演示相关内容的论证、推算的依据,能有效地为演讲者提供论述的数据支撑。通过后端程序代码,我们可借助特定的工具来实现在幻灯片中的插入公式,本文,将对此作详细介绍。

    Jar包引入

    通过 Maven仓库 下载导入,如下配置pom.xml:

    1. 复制代码
    2. com.e-iceblue
    3. https://repo.e-iceblue.cn/repository/maven-public/
    4. e-iceblue
    5. spire.presentation.jar
    6. 7.6.3

    如需手动导入,需要下载jar包到本地,然后解压,找到lib文件夹下的Spire.Presentation.jar文件。在IDEA中打开“Project Structure”界面,执行如图步骤将本地路径下的jar文件手动引入Java程序:

    插入公式

    下面是在PPT幻灯片中插入公式的主要方法和步骤:

    1. 创建Presentation类的对象,并通过Presentation.getSlides().get(int index)方法获取第一张幻灯片。
    2. 通过ISlide.getShapes().appendShape(ShapeType shapeType, Rectangle2D rectangle)方法添加形状到幻灯片。
    3. 通过IAutoShape.getTextFrame().getParagraphs().clear()方法删除形状中默认的段落后,通过IAutoShape.getTextFrame().getParagraphs().addParagraphFromLatexMathCode(String latexMathCode)方法添加公式到形状。LaTeX公式字符串可先行定义好,如本次代码示例。
    4. 最后,调用Presentation.saveToFile(String file, FileFormat fileFormat)方法保存文档到指定路径。

    Java

    1. import com.spire.presentation.*;
    2. import com.spire.presentation.drawing.FillFormatType;
    3. import java.awt.geom.Rectangle2D;
    4. public class AddFormula {
    5. public static void main(String[] args) throws Exception{
    6. //定义LaTeX公式代码
    7. String latexCode1 = "x^{2} + \\sqrt{x^{2}+1}=2";
    8. String latexCode2 = "F(x) &= \\int^a_b \frac{1}{3}x^3";
    9. String latexCode3 = "\\alpha + \\beta \\geq \\gamma";
    10. String latexCode4 = "\\overrightarrow{abc}";
    11. String latexCode5 =" H_x=\\frac{1}{3}\\times{ \\left[ \\begin{array}{ccc}1 & 0 & -1\\\\1 & 0 & -1\\\\1 & 0 & -1\\end{array} \\right ]}";
    12. String latexCode6 = "\\log_a{b}";
    13. //创建Presentation类的实例
    14. Presentation ppt = new Presentation();
    15. //获取第一张幻灯片
    16. ISlide slide = ppt.getSlides().get(0);
    17. //添加形状到幻灯片
    18. IAutoShape shape = slide.getShapes().appendShape(ShapeType.TRIANGLE, new Rectangle2D.Double(30, 100, 320, 50));
    19. shape.getTextFrame().getParagraphs().clear();
    20. //使用LaTeX代码添加数学公式到形状
    21. shape.getTextFrame().getParagraphs().addParagraphFromLatexMathCode(latexCode1);
    22. //重复以上操作,添加形状,并添加公式到形状
    23. shape = slide.getShapes().appendShape(ShapeType.TRIANGLE, new Rectangle2D.Double(280, 80, 380, 70));
    24. shape.getTextFrame().getParagraphs().clear();
    25. shape.getTextFrame().getParagraphs().addParagraphFromLatexMathCode(latexCode2);
    26. shape = slide.getShapes().appendShape(ShapeType.TRIANGLE, new Rectangle2D.Double(60, 190, 240, 40));
    27. shape.getTextFrame().getParagraphs().clear();
    28. shape.getTextFrame().getParagraphs().addParagraphFromLatexMathCode(latexCode3);
    29. shape = slide.getShapes().appendShape(ShapeType.TRIANGLE, new Rectangle2D.Double(350, 190, 200, 40));
    30. shape.getTextFrame().getParagraphs().clear();
    31. shape.getTextFrame().getParagraphs().addParagraphFromLatexMathCode(latexCode4);
    32. shape = slide.getShapes().appendShape(ShapeType.TRIANGLE, new Rectangle2D.Double(10, 240, 400, 100));
    33. shape.getTextFrame().getParagraphs().clear();
    34. shape.getTextFrame().getParagraphs().addParagraphFromLatexMathCode(latexCode5);
    35. shape = slide.getShapes().appendShape(ShapeType.TRIANGLE, new Rectangle2D.Double(350, 280, 200, 40));
    36. shape.getTextFrame().getParagraphs().clear();
    37. shape.getTextFrame().getParagraphs().addParagraphFromLatexMathCode(latexCode6);
    38. //设置形状边框和填充类型
    39. for (int i = 0; i < slide.getShapes().getCount(); i++)
    40. {
    41. slide.getShapes().get(i).getFill().setFillType(FillFormatType.NONE);
    42. slide.getShapes().get(i).getLine().setFillType(FillFormatType.NONE);
    43. }
    44. //保存文档
    45. ppt.saveToFile("MathEquations.pptx", FileFormat.PPTX_2013);
    46. ppt.dispose();
    47. }
    48. }

    公式插入效果:

  • 相关阅读:
    【Try to Hack】java反射
    切换npm源
    Apache Spark 的基本概念和在大数据分析中的应用
    [算法刷题笔记]哈希表(1)
    文件系统相关知识与IO
    非线性海洋捕食者算法(Matlab代码实现)
    redis和nacos的安装
    单因素方差分析(one-way analysis of variance)【R实现,用例题帮你更好理解】
    SpringBoot中如何集成ThymeLeaf呢?
    数据库方面的就业前景怎么样,考什么证有助于找这儿数据库方面工作,希望有经验的~给个建议有点茫然,非常需要解答
  • 原文地址:https://blog.csdn.net/Moonxiyue/article/details/125996053