Графики и диаграммы из MS Excel: печать в PS-файл с последующим кропированием утилитой "PS2EPS" в MS

Статус
Закрыто для дальнейших ответов.

PGreen

Участник
Топикстартер
Сообщения
34
Реакции
22
Обобщаю информацию по вопросу помещения в InDesign графиков из MS Excel методом предварительного распечатывания в PS и затем кропирования полученного имиджа при помощи утилиты PS2EPS.

Тема вставки графиков Excel в Индизайн обсуждалась много раз как на форуме, посвящённом Adobe InDesign, так и в форуме по Adobe Illustrator.
Например, здесь: Вставка диаграммы из Excel.
Указанный способ хорошо работает. Однако есть и альтернативный путь получения на выходе EPS-файла с графиком из MS Excel. Причём, когда всё необходимое установлено и настроено, процесс вывода в конечный файл .eps занимает примерно столько же времени. При этом, ИМХО, с таким файлом удобнее работать — к примеру, в том же Иллюстраторе (редактирование цвета и пр.).

Краткое введение:
В научных публикациях трудно обойтись без диаграмм/графиков, выполненных в Excel.
Иногда даже такие продвинутые приложения, как, например, "Golden Software Grapher" не могут заменить последний. Не всегда всё можно сделать и в Adobe Illustrator — в отношении графиков.
К тому же, часто бывает нужно просто заверстать всё то, что уже сделал в MS Excel автор публикации.
В общем, без Excel бывает просто "ни туда и ни сюда"...
Вместе с тем, начиная с MS Excel 2007, имеем в нём растр, а нужен вектор.
Приходится графики распечатывать в PS-файл, используя PPD какого-нибудь PS-принтера.
Одна беда, имидж получается некропированным на выходе, поэтому то, что распечаталось, не получится, скажем, просто отдистиллить в PDF и поместить затем в InDesign.

То есть, возникает необходимость в кропировании PS-файлов.
Это можно сделать при помощи утилиты "PS2EPS".

Приложение PS2EPS написано на языке Perl Роландом Блессом (Roland Bless).
Для того, чтобы оно работало, в системе должны быть установлены интерпретаторы языков Perl и GhostScript.
Здесь рассматривается случай инсталляции в среде MS Windows.

Скачать: PS2EPS v1.68 (2010-08-31).

Последовательность действий при инсталляции:

1)
Установить ActivePerl (например, "ActivePerl v5.14.2.1402 x86").
Ставим с опциями по умолчанию, кроме пути инсталляции:
D:\Programs\Perl\

2) Установить GhostScript (к примеру, "Ghostscript v9.06 for Windows (32 bit)"):
D:\Programs\GhostScript\gs9.06\

3) Распаковать дистрибутив PS2EPS:
D:\Programs\ps2eps\

4) Переименовать файл "ps2eps" в "ps2eps.pl":
D:\Programs\ps2eps\bin\ps2eps.pl

5) Прописать системные переменные:
Правой кнопкой мыши "Мой компьютер" > "Свойства" > Окно "Свойства системы" > Вкладка "Дополнительно" > Кнопка "Переменные среды" > Окно "Системные переменные":
а) Выделить строку с переменной "PATHEXT" > Кнопка "Изменить" > Строка "Значение переменной" > Дописать в конец строки ";.PL" (без кавычек!) > Нажать "OK";
б) Выделить строку с переменной "Path" > Кнопка "Изменить" > Строка "Значение переменной" > Добавить в конец строки следующее: ";D:\Programs\GhostScript\gs9.06\bin;D:\Programs\ps2eps\bin;D:\Programs\ps2eps\bin\win32" (без кавычек!) > Нажать "OK".
Здесь три пути подряд (через точку с запятой, без пробелов!) — к каталогам со следующими исполняемыми файлами:
— gswin32c.exe (GhostScript);
— ps2eps.pl (собственно, сама утилита "PS2EPS");
— bbox.exe (обрабатывает контур рамки имиджа при кропировании).



ПРИМЕЧАНИЯ:
1)
Если версия GhostScript отлична от приведённой в данном описании, то соответственным образом необходимо исправить путь исполняемому файлу "gswin32c.exe" (то есть, учесть номер билда установленной у вас версии);
2) Установку ActivePerl, GhostScript и распаковку PS2EPS можно делать и в каталог "C:\Program Files\" — вместо "D:\Programs\" — однако лучше, когда нет пробелов в пути исполнения.

Проверка того, что всё сделано правильно:
1)
Кнопка "Пуск" > "Выполнить" > Набрать с клавиатуры "cmd" (без кавычек!) > Нажать "OK";
2) В открывшемся окне набрать "ps2eps" (без кавычек!) > Нажать "Enter".

В результате, интерпретатор выдаст две строки: "Input files: -" и "Processing: -".

ПРИМЕР:
-----------------------------------------
Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.

C:\Documents and Settings\Main>ps2eps
Input files: -
Processing: -

-----------------------------------------

Это означает, что всё настроено и работает как надо.

Пример запуска PS2EPS через командную строку:
ps2eps -l -f -B -s b0 -c -n 1.ps

Использованные в примере параметры запуска описаны ниже (см. исходный код батника "Convert_PS2EPS.bat").
Подробнее все параметры приведены в справке к утилите PS2EPS ("Пуск" > "Выполнить" > Набираем "cmd", затем "ps2eps --help").

С целью автоматизации процесса, можно использовать BAT-файлы:

Сами bat-файлы залил в файлообменник: http://forum.rudtp.ru/resources/ps2eps_bat_files-rar.90/

1) Обработка единичного PS-файла.
Создаём батник "Convert_PS2EPS.bat" (имя файла может быть любым), перетаскиваем мышью имеющийся PS-файл (например, "1.ps") на этот батник — в результате запускается автоматическое кропирование и на выходе имеем обработанный файл с именем "1.eps", который уже можно поместить в InDesign. Данный батник может находиться в любом каталоге. Просто "бросаем" на него мышью PS-файл, и обработка запускается.
Код:
@ECHO OFF
 
:: change drive letter
%~d1
 
:: change to directory of .ps file
cd "%~p1"
 
:: changed name b/c ps2eps doesn't seem to work if spaces in name
del temp.ps
rename "%~nx1" temp.ps
 
:: run converter "ps2eps.pl"
ps2eps -l -f -B -s b0 -c -n temp.ps
 
::options used are:
::-l, --loose, expand the original tight bounding box by one point in each direction.
::-f, --force, Force overwriting existing files.
::-B, --ignoreBB, do not use existing bounding box as page size for rendering.
::-s, --size=pagedim, where pagedim is a pre-defined standard page size (b0 is huge)
::-c, --comments, preserve document structure comments.
::-n, --nofix, do not try to fix postscript code by filtering some instructions.
::
 
:: rename temp.ps to "original name.eps"
del "%~nx1"
rename temp.eps "%~n1.eps"
 
:: delete temp.ps file
del temp.ps

2) Пакетная обработка нескольких PS-файлов.
Создаём батник "Convert_ALL_PS2EPS.bat" (имя файла может быть любым), помещаем его в папку с исходными PS-файлами и запускаем (двойным щелчком левой кнопки мыши на батнике).
Сначала происходит кропирование первого файла в каталоге. После этого процесс может остановиться, и программа предложит либо завершить работу, либо обработать оставшиеся файлы. Нажимаем на клавиатуре клавишу "N" и затем "Enter" — если хотим откропировать все имеющиеся в папке PS-файлы.
Код:
@ECHO OFF
:: change drive letter
%~d1
:: change to directory of .ps file
cd "%~p1"
:: run converter "ps2eps.pl" on all .ps files in directory
FOR %%G IN (*.ps) DO ps2eps -l -f -B -s b0 -c -n "%%G"
:: delete .ps file
FOR %%G IN (*.ps) DO del "%%G"

ПРИМЕЧАНИЯ:
1)
Последняя исполняемая строка в коде каждого из двух батников отвечает за удаление исходных (не кропированных) PS-файлов. В том случае, когда исходные файлы .ps необходимо сохранить по какой-либо причине, до запуска автоматического кропирования необходимо сделать их копию в какой-нибудь каталог (либо правим код батника — убираем строку, отвечающую за удаление, — в этом случае исходные файлы не будут удаляться);
2) В именах исходных PS-файлов не должно быть пробелов;
3) Замечена некорректность работы "Convert_ALL_PS2EPS.bat" — если в пути каталога с обрабатываемыми файлами есть пробелы;
4) Расширение исходных файлов должно быть ".ps" (НЕ ".eps");
5) Код bat-файлов писал не сам, взял готовые решения. Оба файла прикрепляю;
6) Откропированные на выходе EPS-файлы открываем в Иллюстраторе, преобразовываем RGB в CMYK, убираем составной чёрный и т.д.;
7) В 3D-диаграммах, например, в круговых ("Pie Chart"), всё равно будет растр — в части трёхмерных объектов. Здесь, при желании, можно заново отрисовать контур.

Касательно самого процесса распечатки графика из Excel в PS-файл:
1)
Имеет смысл использовать PPD-файл с "PostScript Language Level 3" (например, AGFA "Fiery ZX Phenom-rx Color Server v3010.104" или Linotype "Heidelberger Topsetter 6.9");
2) Если как такового "физического" PS-принтера нет, ставим виртуальный принтер при помощи "Adobe Universal PostScript Windows Driver Installer v1.0.6", с указанием порта печати "File", и в окне "Select Printer Model" подгружаем нужный файл PPD;
3) В расширенных настройках печати установленного виртуального PS-принтера указываем:
— "Шрифт TrueType" > "Загружаемый шрифт" ("TrueType Font" > "Download as Softfont") — чтобы не было подстановки шрифтов при создании PS;
— "Параметры вывода PostScript" > "Инкапсулированный PostScript (EPS)" ("PostScript Output Options" > "Encapsulated PostScript (EPS)");
— "Загрузка шрифтов TrueType" > "Как векторные" ("TrueType Font Download" > "Outline");
— "Уровень языка PostScript" > "3" ("PostScript Language Level" > "3");
4) При печати из Excel в PS-файл, нужно сначала выделить диаграмму/график, затем в опциях печати отметить "Напечатать только выбранную диаграмму", выбрать установленный в системе PS-принтер и задать альбомную ориентацию. Также можно свести в ноль все поля документа, а размер страницы оставить "A4".
 

Dmitrij M

15 лет на форуме
Сообщения
11 046
Реакции
5 944
Ответ: Графики и диаграммы из MS Excel: печать в PS-файл с последующим кропированием утилитой "PS2EPS" в MS Windows

А на ОС Х как? Вопрос довольно актуальный.
 

PGreen

Участник
Топикстартер
Сообщения
34
Реакции
22
Ответ: Графики и диаграммы из MS Excel: печать в PS-файл с последующим кропированием утилитой "PS2EPS" в MS Windows

На Маке не пробовал ни разу...
Нужно попросить коллег с данного Сообщества, кто работает на Apple, чтобы протестировали.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Ответ: Графики и диаграммы из MS Excel: печать в PS-файл с последующим кропированием утилитой "PS2EPS" в MS Windows

Классический пример, когда линуксоиды и прочие ГНУсовцы пытаются писать софт не для себя, а для конечного потребителя. '))' Достаточно прочитать первые два пункта инструкции по установке данной программы, чтобы понять, что НИ ОДИН дизайнер-верстальщик далекий от программирования, пользоваться ей никогда не будет. Да и не мудрено - не пойму, что надо выкурить, чтобы для утилиты, сопрягающих два графпакета с собственным развитым скриптингом, тащить два монструозных кривых, глючных, сложных и непредсказуемых в использовании, дополнительных пакета. Да простит меня отсутствующий 1998. '))' Все это можно было сделать простым и удобным в исполнении скриптом хоть на экселе, хоть на ID - за каким там понадобились перл (и тем более гостскрипт, который, как я понимаю, нужен всего-навсего для генерации превьюшки под EPS!!!) Нет, я бы хоть как то мог понять, если б это была маленькая компактная EXE утилита - но не два огромнейших и кривых пакета! Это все равно, что автор, всю жизнь проработавший в ДОСовском лексиконе, притащил бы свой любимый пакет вместе с досовской загрузочной дискеткой прийдя на работу в современную редакцию. '))'
А главное - конечный результат по сути, не имеет никакого смысла - видите ли, отдистиллированный PDF для вставки им не годится потому как "не кропирован", а полученный путем долгих, непонятных и сомнительных манипуляций "кропированный" закрытый EPS, по сути, являющийся черным ящиком пандоры, который на РИПе может наделать миллион проблем - вполне годится!! Я поражаюсь, что кроме меня никто из сообщества данного факта даже не заметил. Видимо, это еще раз подтверждает мое утверждение, что никому из реальных ДТПшников данная утилита по сути, не нужна, ибо, мороки с установкой и использованием гораздо больше, чем сделать то же самое другим, более надежным путем.
 
Статус
Закрыто для дальнейших ответов.