Embedding and applying private fonts in Word or PDF documents can make your documents unique. This article demonstrates how to embed fonts in a Word document as well as a converted PDF document, by using Spire.Doc for Java.
Embed Font in 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 EmbedPrivateFontInWord {
public static void main(String[] args) {
//create a Word document
Document document = new Document(false);
//add a paragraph
Paragraph paragraph = document.addSection().addParagraph();
//embed a private font in Word document
document.setEmbedFontsInFile(true);
PrivateFontPath fontPath = new PrivateFontPath();
fontPath.setFontName("Otto");
fontPath.setFontPath("C:\\Users\\Administrator\\Desktop\\Otto.ttf");
document.getPrivateFontList().add(fontPath);
//add text to the paragraph and apply the embedded font
TextRange tr = paragraph.appendText("Spire.Doc for Java is a professional Java Word API that enables "+
"Java applications to create, convert, manipulate and print Word documents without " +
"using Microsoft Office.");
tr.getCharacterFormat().setFontName("Otto");
tr.getCharacterFormat().setFontSize(26f);
//save to file
document.saveToFile("output/EmbedFont.docx", FileFormat.Docx);
}
}

Embed Font in 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(false);
//add a paragraph
Paragraph paragraph = document.addSection().addParagraph();
//initialize PrivateFontPath object
PrivateFontPath fontPath = new PrivateFontPath("Otto","C:\\Users\\Administrator\\Desktop\\Otto.ttf");
//add text to paragraph and apply the private font
TextRange tr = paragraph.appendText("Spire.Doc for Java is a professional Java Word API that enables "+
"Java applications to create, convert, manipulate and print Word documents without " +
"using Microsoft Office.");
tr.getCharacterFormat().setFontName("Otto");
tr.getCharacterFormat().setFontSize(26f);
//create a ToPdfParameterList object
ToPdfParameterList toPdfParameterList = new ToPdfParameterList();
//set private fonts as a parameter for converting Word to PDF
List pathList = new LinkedList<>();
pathList.add(fontPath);
toPdfParameterList.setPrivateFontPaths(pathList);
//save to PDF file
document.saveToFile("output/EmbedFont.pdf",toPdfParameterList);
}
}

