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