When we add a trademark, copyright or other symbol to our presentation, we might want the symbol to appear slightly above or below a certain text. In Microsoft PowerPoint, we can implement this effect simply by applying superscript or subscript formatting to the symbol. In this article, we will demonstrate how to achieve this task programmatically in Java using Spire.Presentation for Java.
Install Spire.Presentation for Java
First of all, you're required to add the Spire.Presentation.jar file as a dependency in your Java program. The JAR file can be downloaded from this link. If you use Maven, you can easily import the JAR file in your application by adding the following code to your project's pom.xml file.
<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.presentation</artifactId> <version>9.11.3</version> </dependency> </dependencies>
Add Superscript and Subscript
Spire.Presentation for Java provides the PortionEx.getFormat().setScriptDistance(float value) method for applying superscript or subscript formatting to text. The value can be set as positive or negative. The bigger the positive value, the higher the superscript will appear above your text. The smaller the negative value, the lower the subscript will appear below your text.
The following are the steps to add superscript or subscript to a PowerPoint document:
- Create a Presentation instance and load a PowerPoint document using Presentation.loadFromFile() method.
- Get the desired slide using Presentation.getSlides().get() method.
- Add a shape to the slide using ISlide.getShapes().appendShape() method and set shape fill type and line color.
- Access the text frame of the shape using IAutoShape.getTextFrame() method, then clear the default paragraph in the text frame using ITextFrameProperties.getParagraphs().clear() method.
- Create a paragraph using ParagraphEx class, and add normal text to the paragraph using ParagraphEx.setText() method.
- Create a portion with text using PortionEx class, and then apply superscript or subscript formatting to the text using PortionEx.getFormat().setScriptDistance(float value) method.
- Set text color, font and font size for the normal text and the superscript or subscript text.
- Append the paragraph to the text frame of the shape using ITextFrameProperties.getParagraphs().append() method.
- Save the result document using Presentation.saveToFile() method.
- Java
import com.spire.presentation.*; import com.spire.presentation.drawing.*; import java.awt.*; public class AddSuperscriptAndSubscript { public static void main(String []args) throws Exception { //Load a PowerPoint document Presentation presentation = new Presentation(); presentation.loadFromFile("template.pptx"); //Get the first slide ISlide slide = presentation.getSlides().get(0); //Add a shape to the slide IAutoShape shape = slide.getShapes().appendShape(ShapeType.RECTANGLE, new Rectangle(150, 100, 200, 50)); shape.getFill().setFillType(FillFormatType.NONE); shape.getShapeStyle().getLineColor().setColor(Color.white); //Access the text frame of the shape ITextFrameProperties textFrame = shape.getTextFrame(); //Clear the default paragraph in the text frame textFrame.getParagraphs().clear(); //Create a paragraph with normal text ParagraphEx para = new ParagraphEx(); para.setText("E=mc"); //Create a portion with superscript text PortionEx tr = new PortionEx("2"); tr.getFormat().setScriptDistance(40); //Append the portion to the paragraph para.getTextRanges().append(tr); para.getTextRanges().append(new PortionEx("\n")); //Set text color, font and font size for the normal text tr = para.getTextRanges().get(0); tr.getFill().setFillType(FillFormatType.SOLID); tr.getFill().getSolidColor().setColor(new Color(128,0,128)); tr.setFontHeight(20); tr.setLatinFont(new TextFont("Arial")); //Set text color and font for the superscript text tr = para.getTextRanges().get(1); tr.getFill().setFillType(FillFormatType.SOLID); tr.getFill().getSolidColor().setColor(Color.BLUE); tr.setLatinFont(new TextFont("Arial")); //Append the paragraph to the text frame of the shape textFrame.getParagraphs().append(para); //Create another paragraph with normal text para = new ParagraphEx(); para.setText("X"); //Create a portion with subscript text tr = new PortionEx("100"); tr.getFormat().setScriptDistance(-25); //Append the portion to the paragraph para.getTextRanges().append(tr); //Set text color, font and font size for the normal text tr = para.getTextRanges().get(0); tr.getFill().setFillType(FillFormatType.SOLID); tr.getFill().getSolidColor().setColor(new Color(128,0,128)); tr.setFontHeight(20); tr.setLatinFont(new TextFont("Arial")); //Set text color and font for the subscript text tr = para.getTextRanges().get(1); tr.getFill().setFillType(FillFormatType.SOLID); tr.getFill().getSolidColor().setColor(Color.BLUE); tr.setLatinFont(new TextFont("Arial")); //Append the paragraph to the text frame of the shape textFrame.getParagraphs().append(para); //Save the result document presentation.saveToFile("AddSuperscriptAndSubscript.pptx", FileFormat.PPTX_2013); } }
Output:
Apply for a Temporary License
If you'd like to remove the evaluation message from the generated documents, or to get rid of the function limitations, please request a 30-day trial license for yourself.