关于WPF 打印问题:System.ArgumentException:在路劲中检查到非法字符
如图:
解决办法:
This exception occurs because of corrupt fonts values in the registry (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts). When using WPF printing (System.Printing), it builds a list of fonts by combining the font names from registry and Windows Font Directory path. If there are any illegal characters in the path, we know there are, then the WPF application throws the exception that we see in the stack traces above.
The fix for this issue is pretty straight forward. We can find the corrupt font values in registry and fix them by opening and saving the key. When we open and save the key it seems to remove the bad character(s) from the string. However, finding the corrupt fonts manually is not so easy. On my system for example, I have over 500 font entries in the registry.
To make it easier Bradford Systems has written a small .NET (4.0) application that will loop through all the font entries in the registry, identify the bad one(s) and fix them automatically.
在这里下载一个小工具运行即可!