Вопросительные знаки в документе XPS

Я играл с XPS в C# и использовал этот пример в качестве отправной точки: https://code.msdn.microsoft.com/windowsdesktop/How-to-Edit-XPS-file-in-WPF-724ef6fb

Я немного изменил пример и создал приложение для поиска и замены документов XPS.

Вывод выглядит не очень хорошо:

Копирование и вставка вопросительных знаков в редактор работает хорошо и дает мне правильные символы.

Теперь я обнаружил, что когда символы не находятся в исходном XPS, а новые символы находятся в целевом XPS, их нельзя найти в шрифте (это объяснение можно найти здесь: /questions/32450546/redaktirovat-soderzhimoe-xps/32450554#32450554).

Суть проблемы заключается в использовании шрифтов ODTTF в документе XPS. ODTTF - это обфусцированный заданный шрифт, основанный на шрифтах, использованных в оригинальном документе. Это означает, что вы не можете использовать для замены любой символ, которого не было в исходном документе.

Любое решение для этого?

1 ответ

Решение

Хорошая новость: вы точно диагностировали свою проблему.

Плохая новость: во встроенном ODTTF действительно нет необходимых символов для вашего нового текста. Вам нужно будет вставить новый шрифт. Это ужасный хак, но возможно определить оригинальный шрифт, который был использован. Если тот же шрифт установлен, вы можете повторить процесс встраивания шрифта, создав новый ODTTF, содержащий нужные глифы. Излишне говорить, что это ужасный хак, который может потерпеть неудачу в нескольких точках. То, как вы справитесь с ситуацией, будет сильно зависеть от конкретных случаев использования вашего приложения.

Другие вопросы по тегам