Java 插入公式到PPT幻灯片

鼠扑  金牌会员 | 2022-8-26 02:24:17 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 928|帖子 928|积分 2784

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

通过 Maven仓库 下载导入,如下配置pom.xml:
  1. <repositories>
  2.     <repository>
  3.         <id>com.e-iceblue</id>
  4.         <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
  5.     </repository>
  6. </repositories>
  7. <dependencies>
  8.     <dependency>
  9.         <groupId>e-iceblue</groupId>
  10.         <artifactId>spire.presentation.jar </artifactId>
  11.         <version>7.6.3</version>
  12.     </dependency>
  13. </dependencies>
复制代码
如需手动导入,需要下载jar包到本地,然后解压,找到lib文件夹下的Spire.Presentation.jar文件。在IDEA中打开“Project Structure”界面,执行如图步骤将本地路径下的jar文件手动引入Java程序:

 

插入公式

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

  • 创建Presentation类的对象,并通过Presentation.getSlides().get(int index)方法获取第一张幻灯片。
  • 通过ISlide.getShapes().appendShape(ShapeType shapeType, Rectangle2D rectangle)方法添加形状到幻灯片。
  • 通过IAutoShape.getTextFrame().getParagraphs().clear()方法删除形状中默认的段落后,通过IAutoShape.getTextFrame().getParagraphs().addParagraphFromLatexMathCode(String latexMathCode)方法添加公式到形状。LaTeX公式字符串可先行定义好,如本次代码示例。
  • 最后,调用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. }
复制代码
公式插入效果:

 
—END—
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

鼠扑

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表