Font Catalogue from Folder (not system Fonts folder)

Hello. I have, over the years, collected many free fonts, but haven’t installed them all. I am looking for a way to create a catalogue of these fonts from the folder (in my user documents folder) so I can go through them and choose them as per need.

Most of the font catalogue scripts I have come across seem to be wanting to use Apple Font Book in one way or another. I don’t want Font Book to install the fonts. I just want to create a PDF catalogue.

Is there a script to achieve this?

Here is a quick and dirty sample code creating the document in Pages.

use AppleScript version "2.4" # requires at least Yosemite
use scripting additions
use framework "Foundation"
use framework "AppKit"

my germaine()

on germaine()
	# Define some constants
	set font4title to "Palatino-Roman"
	set size4title to 12
	set size4sample to 24
	
	set theSample to tab & "ABCDEFGHIJKLM" & linefeed & tab & "NOPQRSTUVWXYZ" & linefeed & tab & "abcdefghijklm" & linefeed & tab & "nopqrstuvwxyz" & linefeed & tab & "à âéèêîôûùœæç" & linefeed & tab & "ÀÂÉÈÊÎÔÛÙŒÆÇ" & linefeed & tab & "1234567890" & linefeed & linefeed
	
	set nbPars to (count paragraphs of theSample) - 2
	
	set pdfPath to (path to desktop as text) & "fonts samples.pdf"
	
	# Get the Postscript names of installed fonts
	set theFonts to current application's NSFontManager's sharedFontManager()'s availableFonts() as list
	
	tell application id "com.apple.iwork.pages"
		activate
		# Get the localized names of delivered templates
		set installedTemplates to name of every template
		set blank_loc to installedTemplates's item 1
		set myDoc to make new document with properties {document template:template blank_loc}
		tell myDoc to tell its body text
			set para to 1
			set beurk to ""
			repeat with aFont in theFonts
				set aFont to aFont as text
				if aFont does not start with "." then
					# insert the font name
					if aFont is not "Garamond-LightNarrowItal" then
						set paragraph para to aFont & linefeed & linefeed
					else
						# There is a wrong naming at work.
						set paragraph para to aFont & "  (Garamond-BoldNarrowItal)" & linefeed & linefeed
						set beurk to beurk & aFont & linefeed
						set aFont to "Garamond-BoldNarrowItal"
					end if
					set font of paragraph para to font4title
					set para to para + 2
					# insert the sample text
					set paragraph para to theSample
					set size of paragraphs para thru (para + nbPars - 1) to size4sample
					try
						set font of paragraphs para thru (para + nbPars - 1) to aFont
					on error # flag possible other wrong naming
						set color of paragraphs para thru (para + nbPars - 1) to {64638, 4079, 6844}
						set beurk to beurk & aFont & linefeed
					end try
					set para to para + nbPars
					set size of paragraph para to size4title
					set font of paragraph para to font4title
					set para to para + 1
				end if # aFont does not start with "."
			end repeat
		end tell # myDoc
		export myDoc to file pdfPath as PDF
	end tell # Pages
	set the clipboard to beurk
end germaine

When a character used in the sample is not defined in the font, most of the time the system display it using an other font. Honestly I don’t know which scheme rules this substitution process.

Yvan KOENIG running Sierra 10.12.4 in French (VALLAURIS, France) samedi 8 avril 2017 17:55:35