Q: How can I list all the resource fonts in a PDF document?
A: Here is a sample Java code to list all fonts referenced in a PDF document using Qoppa’s jPDFProcess library. Some fonts may only be referenced by name and other fonts may be embedded in the document.
In version v2016R1, a new package was made available to Qoppa’s jPDFProcess public API called com.qoppa.pdf.resources. This package contains interfaces allowing to get information about resources contained in a PDF, including IResourceManager, IFontResource, IImageResource.
package sample; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.List; import javax.imageio.ImageIO; import com.qoppa.pdf.PDFException; import com.qoppa.pdf.resources.IFontResource; import com.qoppa.pdf.resources.IImageResource; import com.qoppa.pdf.resources.IResourceManager; import com.qoppa.pdfProcess.PDFDocument; public class AccessDocumentResources { public static void main(String[] args) { try { PDFDocument pdfDoc = new PDFDocument("C:/sample/in.pdf", null); IResourceManager resourceManager = pdfDoc.getResourceManager(); // List the fonts from the document System.out.println("List fonts:"); List<? extends IFontResource> fontList = resourceManager.listFonts(); for (IFontResource fontRes : fontList) { System.out.println("\t" + fontRes.getFontName()); } } catch (PDFException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } } } |