You can add vertical text in Microsoft Word by adding a textbox, typing your text in the textbox and then setting the direction of the text. Another way to add vertical text is to type it into a table cell. In this article, I am going to show you how to achieve the same programmatically in Java.
Add Dependencies
In order to add vertical text to Word, I use Free Spire.Doc for Java library. There are two ways to include Free Spire.Doc for Java in your Java project:
For maven projects:
Add the following dependency to your project’s pom.xml file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <repositories> <repository> <id>com.e-iceblue</id> <name>e-iceblue</name> <url>http://repo.e-iceblue.com/nexus/content/groups/public/</url> </repository> </repositories> <dependencies> <dependency> <groupId> e-iceblue </groupId> <artifactId>spire.doc.free</artifactId> <version>3.9.0</version> </dependency> </dependencies> |
The latest version of Free Spire.Doc for Java is 3.9.0 (at the time of writing this article).
For non-maven projects:
Download Free Spire.Doc for Java pack from here: Download- Free Spire.Doc for Java, extract the zip file, then add Spire.Doc.jar in the lib folder into your project as a dependency.
Add vertical text in textbox
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | import com.spire.doc.Document;import com.spire.doc.FileFormat;import com.spire.doc.Section;import com.spire.doc.ShapeVerticalAlignment;import com.spire.doc.documents.*;import com.spire.doc.fields.TextBox;import com.spire.doc.fields.TextRange;import java.awt.*;import java.io.IOException;public class AddVerticalTextToTextBox { public static void main(String []args) throws IOException { //Create a Document instance Document document = new Document(); //Add a section Section section = document.addSection(); //Add a paragraph to the section Paragraph paragraph = section.addParagraph(); //Add a texbox to the paragraph TextBox textBox = paragraph.appendTextBox(50, 100); //Fix the position of the textbox textBox.getFormat().setNoLine(true); textBox.getFormat().setHorizontalOrigin(HorizontalOrigin.Page); textBox.getFormat().setHorizontalPosition(250); textBox.getFormat().setVerticalOrigin(VerticalOrigin.Page); textBox.getFormat().setVerticalPosition(50); textBox.getFormat().setTextAnchor(ShapeVerticalAlignment.Center); //Set text direction textBox.getFormat().setLayoutFlowAlt(TextDirection.Left_To_Right); //Add text to the textbox Paragraph textboxPara = textBox.getBody().addParagraph(); TextRange textRange = textboxPara.appendText("This is sample text."); textRange.getCharacterFormat().setFontName("Calibri"); textRange.getCharacterFormat().setFontSize(11); textRange.getCharacterFormat().setTextColor(Color.black); //Save the document document.saveToFile("AddVerticalTextToTextbox.docx", FileFormat.Docx_2013); document.dispose(); }} |
Output:

Add vertical text in table cell
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | import com.spire.doc.*;import com.spire.doc.documents.RowAlignment;import com.spire.doc.documents.TextDirection;import com.spire.doc.fields.TextRange;import java.awt.*;import java.io.IOException;public class AddVerticalTextToTableCell { public static void main(String []args) throws IOException { //Create a Document instance Document document = new Document(); //Add a section Section section = document.addSection(); //Set text direction for all text in a section //section.setTextDirection( TextDirection.Left_To_Right); //Add a table Table table = section.addTable(); table.resetCells(1, 1); table.getTableFormat().setHorizontalAlignment(RowAlignment.Center); TableCell cell = table.getRows().get(0).getCells().get(0); table.getRows().get(0).setHeight(150); table.getRows().get(0).getCells().get(0).setWidth(50); //Set text direction cell.getCellFormat().setTextDirection(TextDirection.Left_To_Right); //Add text to table cell TextRange textRange = cell.addParagraph().appendText("This is sample text."); textRange.getCharacterFormat().setFontName("Calibri"); textRange.getCharacterFormat().setFontSize(11); textRange.getCharacterFormat().setTextColor(Color.black); //Save the document document.saveToFile("AddVerticalTextToTableCell.docx", FileFormat.Docx_2013); document.dispose(); }} |
Output:

Comments
Post a Comment