DEV Community

E-iceblue Product Family
E-iceblue Product Family

Posted on

Embed Fonts in Word Documents in Java

If you use a custom font (anything other than Word’s built-in fonts) in your document, embedding those fonts ensures that whoever views the document sees it the way you intended. In this artilce, we will show you how to embed true type fonts when creating a Word document or saving a Word document to a PDF file, by using Free Spire.Doc for Java.

Embed Fonts in a Word Document

import com.spire.doc.Document; import com.spire.doc.FileFormat; import com.spire.doc.PrivateFontPath; import com.spire.doc.documents.Paragraph; import com.spire.doc.fields.TextRange; public class EmbedPrivateFont { public static void main(String[] args) { //create a Word document  Document document = new Document(); //add a paragraph  Paragraph paragraph = document.addSection().addParagraph(); //load the private font PrivateFontPath fontPath = new PrivateFontPath(); fontPath.setFontName("Otto"); fontPath.setFontPath("C:\\Users\\Administrator\\Desktop\\Otto.TTF"); //embed a private font in Word document document.setEmbedFontsInFile(true); document.getPrivateFontList().add(fontPath); //add text to the paragraph and apply the embedded font TextRange tr = paragraph.appendText("Dev.to \nA publishing platform for developers to share ideas."); //apply font to text range tr.getCharacterFormat().setFontName("Otto"); tr.getCharacterFormat().setFontSize(34f); //save to file document.saveToFile("EmbedFonts.docx", FileFormat.Docx_2013); } } 
Enter fullscreen mode Exit fullscreen mode

Embed Fonts in a Converted PDF Document

import com.spire.doc.Document; import com.spire.doc.PrivateFontPath; import com.spire.doc.ToPdfParameterList; import com.spire.doc.documents.Paragraph; import com.spire.doc.fields.TextRange; import java.util.*; public class EmbedPrivateFontInConvertedPDF { public static void main(String[] args) { //create a Word document  Document document = new Document(); //add a paragraph  Paragraph paragraph = document.addSection().addParagraph(); //load the private font PrivateFontPath fontPath = new PrivateFontPath(); fontPath.setFontName("Otto"); fontPath.setFontPath("C:\\Users\\Administrator\\Desktop\\Otto.TTF"); //add text to the paragraph TextRange tr = paragraph.appendText("Dev.to \nA publishing platform for developers to share ideas."); //apply font to text range tr.getCharacterFormat().setFontName("Otto"); tr.getCharacterFormat().setFontSize(34f); //create a list and add the font path as an element List<PrivateFontPath> pathList = new LinkedList<>(); pathList.add(fontPath); //create a ToPdfParameterList object and set the private font paths ToPdfParameterList toPdfParameterList = new ToPdfParameterList(); toPdfParameterList.setPrivateFontPaths(pathList); //save the document to PDF document.saveToFile("EmbedFonts.pdf",toPdfParameterList); } } 
Enter fullscreen mode Exit fullscreen mode

Top comments (0)