package com.aspose.pdf.examples.AsposePdfExamples.Text; import java.util.Iterator; import com.aspose.pdf.Document; import com.aspose.pdf.FontRepository; import com.aspose.pdf.TextEditOptions; import com.aspose.pdf.TextFragment; import com.aspose.pdf.TextFragmentAbsorber; import com.aspose.pdf.TextFragmentCollection; public class ReplaceFontsInExistingPDFFile { public static void main(String[] args) { String myDir = "PathToDir"; // Load existing PDF Document Document pdf = new Document("input.pdf"); // Search text fragments and set edit option as remove unused fonts TextFragmentAbsorber absorber = new TextFragmentAbsorber(new TextEditOptions(TextEditOptions.FontReplace.RemoveUnusedFonts)); // accept the absorber for all the pages pdf.getPages().accept(absorber); // traverse through all the TextFragments TextFragmentCollection textFragmentCollection = absorber.getTextFragments(); for (Iterator<TextFragment> iterator = textFragmentCollection.iterator(); iterator.hasNext();) { TextFragment textFragment = iterator.next(); String fontName = textFragment.getTextState().getFont().getFontName(); // if the font name is ArialMT, replace font name with Arial if (fontName.equals("ArialMT")) { textFragment.getTextState().setFont(FontRepository.findFont("Arial")); } } // Save the updated document pdf.save(myDir + "output.pdf"); } }