Office 2010 – Deploying custom fonts across all applications

In an enterprise environment, you may want to customize your fonts across all Office applications. Here is a list of all Office 2010 applications and the possibility to set the custom font.

For WORD, the custom font is customized via the Normal.dotm template, located at %APPDATA%\Microsoft\Templates. Navigate to this location, right click on the template and choose Open. On the Home tab, in the Font group select the font of your choice (we will take Arial 12 as example for this article) and save the file.

 
  
  
  
  
  
  
  

For OUTLOOK, the font is customizable in File menu - Outlook OptionsMailStationery and Fonts… For each of the options you want to customize select Arial 12 as custom font: New mail messages, Replying or forwarding messages, Composing and reading plain text messages.

This will write the settings in the following registry key:

HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\MailSettings

The information written in the registry is in binary format and it’s written for both complex and simple settings.

 

For EXCEL, the font is customized via a registry key: HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Options

Name: Font

Type: REG_SZ

Value: Arial,12

 

For POWERPOINT the font is customized using a custom template called Blank.potx. To create such a template, start PowerPoint, set the font to Arial 12 on the Home tab, Font group and save the file as Blank.potx in the %APPDATA%\Microsoft\Templates folder. You will need to customize the font for every text box on the slide:

 

 

In ACCESS 2010 the setting for the default font size is overridden by the setting in the theme. The behavior is different than the one in Access 2007 where the default font size cannot be set by the registry keys: [HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Access\Settings]"DefaultFontName"="Arial""Default Font Size"=dword:0000000a

The solution would be to create a custom theme with the desired font and setting it as the default theme. In Access 2010 create a custom theme with the font settings you would like to have by default.

- add the .thmx file in the .msp and point to a destination such as [ProgramFilesFolder]\Themes\CustomTheme.thmx

- add the registry key

[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Access\Settings]REG_SZ
"New Database Theme".  The value should be the path to the .thmx file on the user's computer (e.g.: C:\Program Files\Themes\CustomTheme.thmx).

For 64 bit machines this would not be the same, but C:\Program Files (x86)\Themes\CustomTheme.thmx

 

For ONENOTE, the font is customizable via a registry key:

HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\OneNote\Options\Editing

Name: DefaultFontFace

Type: REG_SZ

Value: Arial

Name: DefaultFontSize

Type: DWORD

Value: 12

 

In VISIO, the font is also customizable via the Visio Options:

1. Start Visio (open blank drawing)

2. Change the font to Arial, 12 in the Home tab, Font group

3. Click on File menu, click Options. Click the Advanced tab.

4. Scroll down to under General, click to select the “Put all settings in Windows registry” check box, and then click OK.

4. Quit Visio.

You will notice that the information was written in the following registry key:

 HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Visio\Application

NOTE: While Visio 2010 will use this registry key to set the default font, this setting will only apply when no template (blank drawing) is used.

 

For PROJECT client and INFOPATH, changing the default font is not possible.

 

Now that we have customized the font for all possible applications, we are ready to include the changes in an MSP file to deploy it across the organization.

Here is how to create the customization .msp:

1. Create a customization .msp file using the Office Customization Tool: drag and drop the setup.exe of the Office installation source in the Run box, and pass it the switch /admin:

 

2. This will open OCT (Office Customization Tool):             
 

 

3. Select the first option: Create a new Setup customization file for the following product and click OK

4. We are now ready to add all our files into then MSP

Under Additional Content – click Add Files to add here the template for Word (Normal.dotm) and for PowerPoint (Blank.potx)

You should now see both templates listed with their corresponding location:

NOTE: in a migration scenario, for Word, to make sure that your template is migrated, make sure to add the following registry key in the OCT:

[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Word\Options]"MigrateNormalOnFirstBoot"=dword:00000001

The registry key is described in the following KB article:

https://support.microsoft.com/kb/2408845
Customization to the Normal template is lost in upgrade to Word 2010

Now, you can add the registry keys. You can choose to Import the registry entries (considering you have created them before and exported in .reg format) or Add (and you will have to create them one by one). Below is an example of imported registry key:

Under Additional content – click on Add registry entries and click on Import and browse to the location of the exported registry keys to import them in the OCT. You should now see them all listed as below:

 

We have now finished creating the customization file. You can save it from FileSave asName.msp

We are now ready to create the start-up script and add it to the GPO that will deploy these settings to the whole organization.

To create the .bat file that will be used in the start-up script, please open Notepad and use the following text:

setlocal
reg query HKEY_CLASSES_ROOT\Installer\Patches\9EA4D5478DD17EE45B1A1E670AC471BC

if %errorlevel%==1 (goto Patches) else (goto End)

REM If 1
returned, the patch is not installed. Install the patch here.

:Patches

"%windir%\system32\msiexec.exe" /p \\server\shared_folder\Name.msp /qn

REM If 0 or other was returned, the patch is already installed. Do nothing.

:End

Endlocal

 

** Please NOTE that you need to change the \\server\shared_folder to point to the correct path and MSP file in your environment.

Save the Notepad file as Name.bat in the same shared location (\\server\shared_folder)

On the Domain Controller create a new Policy and assign it to the desired Organizational Unit. Edit the policy and go under:

User ConfigurationWindows SettingsScripts (Logon/Logoff)

Double click Logon – click Add

Under Script name please type the location and the name of the .bat file we created earlier (please use UNC path and not a drive letter)

 

The script that I create above is also sampled in the following blog:

https://blogs.technet.com/b/odsupport/archive/2009/12/17/how-to-deploy-a-patch-using-a-startup-script-via-gpo.aspx

The logic behind the startup script is as follows:

Check to see if the reg key HKEY_CLASSES_ROOT\Installer\Patches\ 9EA4D5478DD17EE45B1A1E670AC471BC
exists. If it does, than the patch is already installed and it goes to End performing no action. If the reg key does not exist than this patch needs to be installed therefore it will run the command to install it.

To know the ID that we need to look for, we right click on the MSP, go to Properties, go to the Details tab. Here we will find a Revision #. This first number is the uncompressed GUID for this patch. In our case it was {9EA4D5478DD17EE45B1A1E670AC471BC}. We need to convert it to determine what the compressed GUID is. The following blog entry discusses converting a GUID to a compressed GUID. https://blogs.technet.com/odsupport/archive/2009/12/17/how-to-convert-an-office-guid-or-office-patch-guid-to-a-compressed-guid.aspx

Related online resources:

https://blogs.technet.com/b/odsupport/archive/2009/12/17/how-to-deploy-a-patch-using-a-startup-script-via-gpo.aspx

https://blogs.technet.com/odsupport/archive/2009/12/17/how-to-convert-an-office-guid-or-office-patch-guid-to-a-compressed-guid.aspx    

https://blogs.technet.com/b/odsupport/archive/2009/04/24/how-to-deploy-specific-fonts-in-office-2007.aspx

Comments

  • Anonymous
    January 01, 2003
    Hi Steve, Can you be more specific in what should be wrong with the PowerPoint portion? This has been tested and confirmed as working. Thanks, Catalina

  • Anonymous
    January 30, 2013
    Hi. As long as you don't print out these instructions, the portion for PowerPoint is worth the paper it's printed on.  Clearly, the author never tested this or ran it past anyone with more than a casual knowledge of PowerPoint.  In short:  it's totally wrong.  The PowerPoint product managers can put you in touch with people who would gladly help correct the misinformation here if you'd like.

  • Anonymous
    November 07, 2013
    You have a simple typo in your PowerPoint section. Blank.potx  should be Blank.pptx

  • Anonymous
    November 07, 2013
    Sorry, no you were correct. It is .potx (reference link below) office.microsoft.com/.../create-and-save-a-presentation-as-a-template-HA010338384.aspx

  • Anonymous
    January 19, 2016
    Hi,
    My environment already had Office 2010 and 2013 installed. Now, I'm working on the default font (Time New Roman size 13) for everybody in our domain. I created a customize .MSP file using Office Customization Tool from Office 2013 with just "Add file and Remove file" (Normal.dotm which have set with Time New Roman size 13) and "Add Registry" As follow:

    Add files
    File name Location
    Normal.dotm %AppData%MicrosoftTemplates

    Remove files
    File name Location
    Normal.dotm %AppData%MicrosoftTemplatesNormal.dotm

    Add registry Entries
    Root Key Value name Value data
    HKCU SoftwareMicrosoftOffice14.0WordOptions MigrateNormalOnFirstBoot DWORD: 1
    HKLM SoftwareMicrosoftOffice14.0WordOptions MigrateNormalOnFirstBoot DWORD: 1
    HKCU SoftwareMicrosoftOffice15.0WordOptions MigrateNormalOnFirstBoot DWORD: 1
    HKLM SoftwareMicrosoftOffice15.0WordOptions MigrateNormalOnFirstBoot DWORD: 1

    Folder 14.0 is for Office 2010, folder 15.0 is for Office 2013

    I have created and deploy a package in SCCM console using this commandline: msiexec.exe /p Font.MSP /qn
    Everything is seemed working fine in SCCM (no error). In the client side, I saw the patch (Font.msp) and file Normal.dotm are in %appdata%MicrosoftTemplate folder. However, the font is still not changed to Time New Roman (TNR) size 13. In some clients, the default font got changed to my desired font (TNR 13). What SCCM logs (in both server and client) should I look for? What do I need to do to make it work?