Hello everyone,
I wanted to let the thread know that Esri's developers and product engineers on multiple teams responsible have worked together to debug the root cause of this issue.
ESRI ANALYSIS:
Based on the debugging and some experimentation we determined that a change to GDI32.dll in specific patches to Windows 8.1/Server 2016 and Windows 10 caused a Windows GDI function to fail where it previously worked correctly.
This defect can also be experienced or reproduced by opening EMF files referencing a font even in Microsoft Paint, even with no Esri software installed, so it seems clear that it is a system issue, not an issue in Esri software.
ESRI ACTION TAKEN:
Based on this info and our analysis we've provided details of the bug to Microsoft Premium Support and started a case with them under "urgent" severity to request a resolution.
AFFECTED ENVIRONMENTS:
Any machines with KB4503276 or later (for Windows 8.1 and Windows Server 2012 R2)
Or any machines with KB4503286 or later (Windows 10)
Note: You can see in the aforementioned KBs affected file lists that gdi32.dll is updated with this change.
WORKAROUNDS:
In the meantime the known workarounds are either to go roll back the KB fixes listed on your windows OS, or to use the workaround of publishing from Pro instead of ArcMap. Pro uses a different code path that is not dependent on GDI (this is part of the reason we built Pro in the first place) so it should be unaffected by this bug.
NEXT STEPS:
I will update the thread once I have more information or further details from Microsoft.
Feel free to continue to report the issue to support with details of your environment including windows version/build (you can type "winver" at a command prompt to get this information) and/or whether you've applied the aforementioned KB patches.
Please let me know if you have any other questions regarding this issue in the meantime.
Regards,
Jeremy W.
Desktop Visualization Team
MORE DETAILS FOR THOSE WHO MAY BE INTERESTED:
GDI32.dll function "PlayEnhMetaFileRecord" fails, when called for "EMR_EXTCREATEFONTINDIRECTW" record. This is the function used to "hydrate" a font from the font file when it's referenced in a GDI stream. ArcMap uses fonts for all of its symbols, thus the reliance on this GDI function versus ArcGIS Pro, which uses vector geometries directly.