XPS文档中的问号

时间:2015-11-04 14:18:04

标签: c# xps xpsdocument

我在C#中使用XPS,并以此示例作为起点:https://code.msdn.microsoft.com/windowsdesktop/How-to-Edit-XPS-file-in-WPF-724ef6fb

我稍微修改了一下这个例子,并为XPS文档创建了一个搜索和替换应用程序。

输出看起来不太好:

enter image description here

将问号复制并粘贴到编辑器中效果很好并给我正确的字符。

现在我发现当字符不在源XPS中并且新字符在目标XPS中时,它们无法在字体中找到(在此处找到此解释:https://stackoverflow.com/a/28236296/2058139)。

  

问题的实质在于在XPS文档中使用ODTTF字体。 ODTTF是基于原始文档中使用的字体的模糊子集字体。这意味着您不能用于替换原始文档中没有的任何字符。

对此有何解决方案?

1 个答案:

答案 0 :(得分:2)

好消息: 您已准确诊断出您的问题。

坏消息: 嵌入式ODTTF确实没有新文本所需的字形。您需要嵌入一个新字体。这是一个糟糕的黑客,但有可能使用determine the original font。如果碰巧安装了相同的字体,您可以重做字体嵌入过程,生成包含所需字形的新ODTTF。毋庸置疑,这是一个可怕的黑客攻击,可能会在几个方面严重失败。您如何处理这种情况将高度依赖于您的应用程序的特定用例。