Article ID: 952909 - Last Review: June 6, 2008 - Revision: 1.1
When you try to print a document to a PostScript printer in an application, the application exits unexpectedly, or you find that an invalid PDF file is created from the incorrect data in the PostScript file
You have a PostScript printer driver that is installed on a computer that is running Windows XP, Windows Server 2003, Windows Vista, or Windows Server 2008. In an application, you try to print a document to the PostScript printer, or you print the document to a file through the PostScript printer driver. However, the application may exit unexpectedly (crash) when the content is converting to a PostScript (.ps) file.
The following applications are known to experience the crash:
Microsoft Word
Microsoft Power Point
Adobe applications such as Adobe Frame Maker 8.0
Under certain circumstances, some sections in a document may be lost. For example, you have a document that contains section 1, section 2, and section 3. After you convert the document to a .ps file, and then you convert the .ps file to a Portable Document Format (PDF) file, section 2 is lost.
Note In this example, both section 1 and section 3 are in font A, although section 2 is in font B.
The generation of a PDF document requires a PostScript (.ps) file that is created from the source document, such as a Word document. Then, the PostScript file is converted to a PDF document.
When the operating system detects low virtual memory as defined by a specific threshold (This threshold is internal to the operating system), certain fonts are unloaded from the memory. When the sections that have these unloaded fonts are parsed by the PostScript printer driver, the application that uses the PostScript printer driver may crash, or the font data may not be parsed to make a valid PostScript (.ps) file. Therefore, the PostScript file may contain corrupted data, and you may obtain an invalid PDF document.
A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing this specific problem.
If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, submit a request to Microsoft Customer Service and Support to obtain the hotfix.
Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site:
Note The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.
Prerequisites
To apply this hotfix, you must have Windows XP Service Pack 2 or Windows XP Service Pack 3 installed on the computer.
Restart requirement
You have to restart the computer after you apply this hotfix.
Hotfix replacement information
This hotfix does not replace any other previously released hotfixes.
Registry information
To use this hotfix, you do not have to make any changes to the registry.
File information
The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.
Windows XP with SP2, x86-based versions
Collapse this tableExpand this table
File name
File version
File size
Date
Time
Platform
SP requirement
Service branch
Atmfd.dll
5.1.2.227
285,696
27-May-2008
17:39
x86
SP2
SP2QFE
Windows XP with SP3, x86-based versions
Collapse this tableExpand this table
File name
File version
File size
Date
Time
Platform
SP requirement
Service branch
Atmfd.dll
5.1.2.227
285,696
27-May-2008
17:29
x86
SP3
SP3QFE
Windows Server 2003
A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing this specific problem. This hotfix might receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next software update that contains this hotfix.
If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, contact Microsoft Customer Service and Support to obtain the hotfix.
Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site:
Note The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.
Prerequisites
To apply this hotfix, you must have Windows Server 2003 Service Pack 1 or Windows Server 2003 Service Pack 2 installed on the computer.
Restart requirement
You have to restart the computer after you apply this hotfix.
Hotfix replacement information
This hotfix does not replace any other previously released hotfixes.
Registry information
To use this hotfix, you do not have to make any changes to the registry.
File information
The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.
Windows Server 2003 with SP1, x86-based versions
Collapse this tableExpand this table
File name
File version
File size
Date
Time
Platform
SP requirement
Service branch
Atmfd.dll
5.1.2.227
282,112
27-May-2008
13:50
x86
SP1
SP1QFE
Windows Server 2003 with SP2, x86-based versions
Collapse this tableExpand this table
File name
File version
File size
Date
Time
Platform
SP requirement
Service branch
Atmfd.dll
5.1.2.227
282,112
27-May-2008
14:02
x86
SP2
SP2QFE
Windows Server 2003 with SP1, x64-based versions
Collapse this tableExpand this table
File name
File version
File size
Date
Time
Platform
SP requirement
Service branch
Atmfd.dll
5.1.2.227
448,512
27-May-2008
11:53
x64
SP1
SP1QFE
Windows Server 2003 with SP2, x64-based versions
Collapse this tableExpand this table
File name
File version
File size
Date
Time
Platform
SP requirement
Service branch
Atmfd.dll
5.1.2.227
448,512
27-May-2008
11:57
x64
SP2
SP2QFE
Windows Server 2003 with SP1, Itanium-based versions
Collapse this tableExpand this table
File name
File version
File size
Date
Time
Platform
SP requirement
Service branch
Atmfd.dll
5.1.2.227
816,128
27-May-2008
11:52
IA-64
SP1
SP1QFE
Windows Server 2003 with SP2, Itanium-based versions
Collapse this tableExpand this table
File name
File version
File size
Date
Time
Platform
SP requirement
Service branch
Atmfd.dll
5.1.2.227
816,128
27-May-2008
11:55
IA-64
SP2
SP2QFE
Windows Vista and Windows Server 2008
A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing this specific problem. This hotfix might receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next software update that contains this hotfix.
If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, contact Microsoft Customer Service and Support to obtain the hotfix.
Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site:
Note The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.
Prerequisites
To apply this hotfix, the computer must run one of the following:
Windows Vista
Windows Vista Service Pack 1
Windows Server 2008
Restart requirement
You have to restart the computer after you apply this hotfix.
Hotfix replacement information
This hotfix does not replace any other previously released hotfixes.
Registry information
To use this hotfix, you do not have to make any changes to the registry.
File information
The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.
You can examine the PostScript document and identify the corrupted text by using a text editor. The corrupted text is usually after the "VM?" text in the PostScript (.ps) file.
The following example shows that a word is missing in the PDF document and a text string is corrupted in the PostScript (.ps) file.
In this example, the original text is "abuse or dependence". After the PostScript (.ps) file is converted to a PDF document, the word “or” is missing in the final PDF document. When you open the PostScript (.ps) file in a hexadecimal editor, you see the following text.
F /F5 0 /0 T /NewBaskerville-Italic mF
/F5S43 F5 [67 0 0 -67 0 0 ] mFS
F5S43 Ji
1771 3840 M (abuse )[34 27 38 22 23 0]xS
27000 VM?
Pscript_WinNT_Incr begin
%%BeginResource: file Pscript_T3Hdr 5.0 0
{version cvi 2016 ge{32/FontType resourcestatus{pop pop true}{false}ifelse}
{false}ifelse}exec/Is2016andT32? exch def/T32DefSBCMap{/CIDInit/ProcSet
findresource begin 10 dict begin begincmap/CIDSystemInfo 3 dict dup begin
/Registry(Adobe)def/Ordering(Identity1)def/Supplement 0 def end def/CMapType 0
def/WMode 0 def 1 begincodespacerange<00><ff>endcodespacerange 1 begincidrange
<00><ff>0 endcidrange endcmap/DrvSBCMap currentdict/CMap defineresource pop end
end}bind def Is2016andT32?{T32DefSBCMap}def/T32RsrcBegin{Is2016andT32?{
/BitmapFontInit/ProcSet findresource begin}if}bind def/T32RsrcEnd{Is2016andT32?
{end}if}bind def/AddT32Char{6 1 roll 0 get 7 1 roll pop pop 5 1 roll pop
findfont/TT32R get addglyph}bind def/AddT3Char{findfont dup 5 2 roll 1 index
length 0 gt{cvx 1 index exch 4 exch put dup(imagemask)cvx cvn 5 exch put cvx}
{pop cvx}ifelse 3 -1 roll/CharProcs get 3 1 roll put dup/Encoding get 5 -1 roll
4 index put/Metrics get 3 1 roll put}bind def/AddT3T32Char Is2016andT32?{
/AddT32Char}{/AddT3Char}ifelse load def/GreNewFontT32{5 dict begin exch
/FontMatrix exch def exch/FontBBox exch def exch pop exch pop/CIDFontType 4 def
dup currentdict end/CIDFont defineresource 3 -1 roll dup/DrvSBCMap dup/CMap
resourcestatus{pop pop}{T32DefSBCMap}ifelse 5 -1 roll[exch]composefont dup
length dict copy dup/FID undef begin exch/TT32R exch def currentdict end
definefont/BitmapFontInit/ProcSet findresource begin/TT32R get[14 0 0 0 0 0]<>0
4 -1 roll addglyph end}bind def/GreNewFontT3{11 dict begin pop/FontType 3 def
/FontMatrix exch def/FontBBox exch def/Encoding exch def/CharProcs 257 dict def
CharProcs/.notdef{}put/Metrics 257 dict def Metrics/.notdef 3 -1 roll put
AddFontInfoBegin AddFontInfo AddFontInfoEnd/BuildChar{userdict begin/char exch
def dup/charname exch/Encoding get char get def dup/Metrics get charname 2 copy
known{get aload pop}{pop/.notdef get aload pop}ifelse setcachedevice begin
Encoding char get CharProcs exch 2 copy known{get}{pop/.notdef get}ifelse end
exec end}def currentdict end definefont pop}bind def/GreNewFont{Is2016andT32?
{GreNewFontT32}{GreNewFontT3}ifelse}bind def/UDF3{Is2016andT32?{/BitmapFontInit
/ProcSet findresource begin dup/CIDFont findresource removeall/CIDFont
undefineresource undefinefont end}{pop UDF}ifelse}bind def
%%EndResource
end reinitialize
/TT431F0b00
[67 0 0 0 0 0 ]
256 array 0 1 255 {1 index exch /.notdef put} for
[0 0 0 0 ]
[1 67 div 0 0 -1 67 div 0 0 ]
/__TT431F0b00
GreNewFont
F /F6 0 /0 F /TT431F0b00 mF
/F6S43 F6 [67.188 0 0 -67.188 0 0 ] mFS
F6S43 Ji
1935 3840 M <010203>[38 27 0]xS <- Bad pointer for “or”
F5S43 Ji
2021 3840 M (dependence )[34 23 32 22 37 34 22 38 24 23 0]xS
F3S43 Ji
2329 3840 M (in DSM)[19 40 21 49 34 0]xS
Notice that line "1771 3840 M (abuse )[34 27 38 22 23 0]xS" correctly shows the word "abuse." However, line "1935 3840 M <010203>[38 27 0]xS" shows the word "or" as "<010203>."
Also, line "2021 3840 M (dependence )[34 23 32 22 37 34 22 38 24 23 0]xS" correctly shows the word "dependence."
Note Line "1935 3840 M <010203>[38 27 0]xS" comes after line "27000 VM?." In this case, this shows that the system makes a virtual memory check. The section after the "27000 VM?" line shows that the certain fonts are unloaded.
You experience this problem more frequently when the size of the Fntcache.dat file is large. By default, this file is in the windows\system32 folder.
For more information, click the following article number to view the article in the Microsoft Knowledge Base:
824684
(http://support.microsoft.com/kb/824684/
)
Description of the standard terminology that is used to describe Microsoft software updates
The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, about the performance or reliability of these products.