How to enum unavailable fonts in a word document

M

Max Liu

Dear friends,

I want to enum the unavailable fonts in a word cocument, but I dont want to
enum each character or word in this document.
Now, I have an alternative solution :

1. Affirm that unavailabe font exists by using Application.Dialogs with
parameter wdDialogFontSubstitution.
2. Save it as OpenXML format if this document is formated to other format.
3. Access the FontTable in this document through the System.IO.Packaging
namespace.
4. Enum each of font in the FontTable and affirm which doesnt exists in
Application.FontNames.

Here is a translation possibly.

Does the more efficient solution exist, please tell me.

TIA

Max Liu
 
B

Bob Eaton

I don't quite understand why you'd want all the *un*available fonts in a
document...

but a possible solution for determining the *available* fonts is:

1) Save the document as XML format (i.e. wdFormatXMLDocument)

2) Open the XML file and search in the following XPath for font names:

/w:wordDocument/w:fonts/w:defaultFonts/@w:ascii
/w:wordDocument/w:fonts/w:defaultFonts/@w:fareast
/w:wordDocument/w:fonts/w:defaultFonts/@w:h-ansi
/w:wordDocument/w:fonts/w:defaultFonts/@w:cs


as well as all instances of:

/w:wordDocument/w:fonts/w:font/@w:name

Bob
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top