Проблема с конвертированием eps-файла в векторный формат из GSView под Windows (x64)

в 13:30, , рубрики: emf, wmf, x64, обработка изображений, типографика, метки: , ,

Откуда ноги

Если вам вдруг (не знаю отчего) пришла в голову мысль «а не переделать ли мне мою старую научную статью из TeX'a в Microsoft Word» или если презентацию вашего выдающегося диплома/диссертации приходится по-быстрому лепить в PowerPoint'е, то наверняка вы придете в ужас, увидев какого качества получаются прекрасно-векторные eps-графики после вставки их в документы, созданные вами в офисных приложениях от Microsoft'а. Причиной тому использование растрового preview-изображения вашей векторной eps-картинки вместо корректного преобразования ее к аналогичному формату, с которым способен работать Windows. Таким форматом является emf (enhanced windows metafile). Файлы этого формата вставляются так, что любо-дорого посмотреть: увеличивай во сколько хочешь раз — «ступенек» не увидишь да и текст на таких графиках можно редактировать.

Как конвертировать

Для волшебного превращения не особо знакомых Microsoft'у eps-файлов в родные файлы формата emf обычно пользуются относительно бесплатной (если не хотите от нее дополнительных прибамбасов) программкой pstoedit. Программка эта легко конвертирует PostScript'овские файлы в другие форматы, в том числе и нужный нам emf. Проблем с запуском ее из командной строки обычно не бывает. Но не всем нравится такой способ работы (ну, привыкли руки к мыши, с кем не бывает). Таких людей можно обрадовать. В «стандартном» просмотрщике PostScript'овских файлов под названием GSView есть специальный подпункт в меню «Правка», называется этот подпункт «Конвертировать в векторный формат...» и делает он ни что иное, как запускает упомянутый мной pstoedit, если он конечно уже установлен. Пользователям 32-битной версии Windows здесь можно закончить чтения, так как при рабочей связке GhostScript-GSView и установленном pstoedit проблем быть не должно.

А если у вас-таки 64-битный Windows

Тогда и GhostScript вы наверняка ставили 64-битный. И в таком случае при запуске «Конвертирования в векторный формат...» вам не избежать критической ошибки. Решением в таком случае будет использование командной строки, запуская pstoedit напрямую. Но если тяга к мыши непреодолима, то можно вчитаться в отчет о произошедшей при конвертировании ошибке и увидеть неожиданную для себя вещь:
pstoedit: version 3.60 / DLL interface 108 (built: Aug 27 2011 - release build - MS VC++ 1600 - 64-bit) : Copyright (C) 1993 - 2011 Wolfgang Glunz
running-win command line: C:Program Filesgsgs9.05bingswin32c.exe -q -dDELAYBIND -dWRITESYSTEMDICT -dNODISPLAY -dNOEPS D:/_temp/psin2
Interpreter failure: -1

Вместо установленной у вас 64-битной версии GhostScript'а (gswin64c.exe) запущенный из GSView pstoedit пытается вызвать его 32-битного собрата (gswin32c.exe).
Разобраться, кто в этом случае виноват, у меня быстро не получилось и потому предлагаю решение, поражающее своей оригинальностью. В папке с gswin64c.exe создайте копию этого файла и назовите ее gswin32c.exe.

Наверное существует и более кошерное решение, но меня пока вполне устроил и такой вариант. Все заработало и мышь снова приятно греет руку.

Автор: nul0m

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js