Pages missing fonts error

When opening a Pages document that was converted from Microsoft Word, I get an error prompt that “This document has missing fonts.”


The fonts, however, are present (I've checked Font Book and confirmed the font is installed). and even selectable as the font they could replace, i.e., I have the option to use Times New Roman to replace Times New Roman. 


I understand how to resolve the error for an individual document. Is this something that can be fixed and resolve the problem for all documents created?

Posted on May 24, 2024 3:14 AM

Reply
1 reply

May 24, 2024 7:05 AM in response to Joseph Tate

I have a short AppleScript that if you select the Microsoft Word document (.docx only), will display a list of the fonts in that Word document. It can't tell what specific font face (e.g. bold, italic, regular) references are in that Word document, but you can verify those installed in macOS by face listing in the Font Book.


The challenge is that Microsoft Word can create faux font face references for italic or bold where no such fonts were installed on Windows, and Pages will flag any font face that is not physically installed on macOS.


Here is an example output from the AppleScript:




In Finder, press shift+cmd+U to open the Utilities folder. Locate Script Editor and double-click to launch it.


Copy/paste all of the following code into the Script Editor, click the hammer icon, and then click Run. It will prompt you for only Word .docx documents.


use framework "Foundation"
use scripting additions

property ca : current application
property DOCX : {"org.openxmlformats.wordprocessingml.document"}

set mutA to ca's NSMutableArray's array()

set theDOCX to POSIX path of (choose file of type DOCX) as text
set tildePath to ((ca's NSString's stringWithString:theDOCX)'s stringByAbbreviatingWithTildeInPath()) as text
set fontwork to paragraphs of (do shell script "unzip -p " & theDOCX's quoted form & " \"word/fontTable.xml\" | egrep -iowm1 'name=\"([a-z ]+)\"' ")
if fontwork = {} then return

repeat with anItem in fontwork
	(mutA's addObject:(my cleanFont(anItem)))
end repeat
display dialog "File: " & tildePath & return & return & "Fonts" & return & return & (mutA's componentsJoinedByString:return) as text with title "Word document fonts"
return

on cleanFont(aStr)
	-- remove name= and quotes
	set tStr to ca's NSString's stringWithString:aStr
	set fStr to (ca's NSString's stringWithString:aStr)'s substringFromIndex:5
	return (fStr's stringByReplacingOccurrencesOfString:"\"" withString:"") as text
end cleanFont


I also have an AppleScript that lists the fonts in a Pages document too.

Pages missing fonts error

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple ID.