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
Bob Eaton - 22 Aug 2007 13:08 GMT
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
> Dear friends,
>
[quoted text clipped - 17 lines]
>
> Max Liu