Искаженный текст на печатном XPS при генерации с помощью программного обеспечения Spire.PDF
Я разрабатываю программу WPF на C#, которая в конечном итоге приводит к отправке документа XPS на принтер.
Документ начинает свою жизнь в формате PDF, который был загружен с веб-сайта. Затем он загружается из файла с помощью программного обеспечения "Spire.PDF" от E-iceblue и сохраняется как документ XPS с использованием этого программного обеспечения.
Получившийся документ XPS на экране выглядит превосходно, однако при печати весь текст искажается.
Я попытался использовать Microsoft XPS Document Writer для преобразования PDF вместо этого, и та же проблема не возникает, но я не могу использовать это решение в моей программе, так как процесс преобразования занимает много времени, и я не могу гарантировать, что этот драйвер будет присутствовать на клиентском компьютере, на котором запущена программа.
Я думаю, что я понял, что файлы шрифтов.odttf в документе XPS являются источником проблемы. Отключив один из файлов шрифтов и открыв его в FontForge, я не вижу никаких очевидных проблем, и когда я экспортирую те же данные, что и файл шрифта.ttf, используя FontForge и вставляю их в документ XPS, проблема решается! Я не понимаю, в чем разница между исходным файлом шрифта и тем же файлом после регенерации через FontForge. (Примечание: я также попытался вставить деобфусцированный файл шрифта непосредственно в XPS, не проходя через FontForge, но ошибка все еще возникает)
Ниже приведена ссылка на сгенерированный Spire.PDF документ XPS, который при печати приводит к искаженному тексту, а также к сканированию итоговой распечатки документа.
Ссылка на файл XPS: https://www.dropbox.com/s/7f0n3l628aafwk6/sample_print.xps?dl=0
Сканирование полученной распечатки: https://www.dropbox.com/s/ruwipa51revynqw/garbled_printout.jpg?dl=0
В документ встроены два файла шрифтов: шрифт для текста и жирный шрифт для заголовков. Анализируя первую строку документа (в которой используется жирный шрифт заголовка), я заметил, что каждая буква заменяется одним и тем же неправильным глифом каждый раз. Например, в заголовке документа "ПАЦИЕНТ ИНФОРМАЦИОННЫЙ ЛИСТ" вы можете видеть, что каждая буква "Т" заменяется буквой "Б", а каждая буква "А" заменяется буквой "В".
Это привело меня к мысли, что CIDmap шрифта был неправильным, но я проверил это с помощью SIL ViewGlyph, и отображение, по-видимому, является правильным.
Я пытался попросить E-iceblue исправить эту ошибку, но они не знают, что является причиной проблемы, однако они обнаружили, что ошибка не возникает на 32-битной машине.
Кто-нибудь может посоветовать, в чем может быть проблема с этими файлами шрифтов, чтобы я мог передать их E-iceblue, чтобы они могли исправить ошибку?