Денис Порубов
Print Merge, или
переменные данные по-домашнему
В жизни почти что каждого верстальщика (дизайнера) наступает момент, когда приходится делать кучу именных листовок. Или номерных билетов. Или еще чего-нибудь однотипного, отличающегося между собой только номерами, фамилиями, датами одним словом, тем, что нужно набрать вручную. Самое обидное то, что эту работу нельзя поручить секретарше, потому что ее учить дольше, чем сделать самому.
Существуют системы печати переменных данных, такую работу сильно облегчающие. Да, где-то существуют… Но не здесь.
Для тех, кто не обзавелся системой печати переменных данных, существует «фича» Print Merge из Corel DRAW 10. О ней речь и пойдет.
Print Merge можно перевести как «слияние (объединение) при печати». Предположим, что нам надо «слить» номера для дисконтной карты в файл, содержащий макет этой карты.
Во-первых, надо сделать макет карты. С этим проблем возникнуть не должно.
Далее, выполним команду «File>Print Merge>Create/Load Merge Fields» (создать/загрузить поля для объединения). Откроется окно «Print Merge Wizard».
Для начала на выбор предлагается два варианта: «Create from scratch» (создать с нуля) и «Select from an existing file» (выбрать из существующего файла). Файла с номерами у нас пока нет, так что будем сами создавать.
Выбрав «Create…», нажимаем кнопку <Next>. Теперь нужно создать поля, которые будут содержать изменяющуюся информацию, в нашем случае номера.
Поля это, фактически, столбцы таблицы, в ячейках которой содержится информация для объединения при печати. При объединении на страницу 1 Corel DRAW помещает информацию из строки 1, на страницу 2 из строки 2, и т.д. Поэтому однотипных полей должно быть столько же, сколько эта информация встречается на одной странице. Понятно?.. ОК, объясню проще. У меня на формат А4 размещено 9 дисконтных карт. Количество полей делаем тоже 9. Если бы на страницу влезло 10 карт, то надо было бы делать 10 полей. Ладно, дальше понятнее станет.
Уф, поля создали, едем дальше, т.е. опять давим <Next>. Вылазит вот что:
Здесь мы должны в ячейки таблицы вписать информацию, которая потом будет автоматически размещаться.
«Ни фига себе автоматизация опять вручную набирать!» скажете вы. И будете правы. Но мы пока только учимся использовать Print Merge, а как говорится, «тяжело в учении легко в бою». К тому же, набрать номера здесь проще, чем в макете. Так что будем набирать номера до тех пор, пока они не кончатся. Когда кончится строка, создадим новую для этого там есть кнопочка <New>.
Набрав номера, давим <Next>. В открывшемся окне нам предлагается сохранить полученные данные (рекомендую это сделать) и/или завершить работу «Мастера». Завершаем.
Теперь рекомендую открыть панель инструментов Print Merge (для этого нужно кликнуть правой кнопкой мыши по любой панели инструментов, из раскрывшегося списка выбрать Print Merge).
На панели инструментов Print Merge есть раскрывающийся список «Print merge field» и кнопка <Insert selected print merge field>. Из списка выбираем имя поля (в данном случае номер), кнопочку <Insert selected print merge field> нажимаем, и кликаем по рисунку рядом с тем местом, где будет находиться номер карты (рядом потому что потом все равно выравнивать придется). Параметры надписей соответствуют параметрам шрифта по умолчанию. Для завершения расстановки нужно эту кнопочку снова нажать, и кликнуть где-нибудь по окну программы (например, по заголовку).
На рисунке после кликов возникают надписи типа <1>, <2> и т.д. Если поставить два раза, например, <1>, то на странице потом два раза напечатается содержимое первого поля. Теперь понятно, почему количество полей (столбцов) такое же, сколько они попадаются на странице? С другой стороны, если номер нам нужен два раза (например, на билете и его корешке), то мы просто два раза ставим соответствующее поле.
Теперь придадим этим записям шрифт, размер, выключку и цвет такие, какие нам нужны (если не устраивают параметры текста по умолчанию), и разместим записи там, где нам это надо.
На этом подготовку можно считать законченной. Теперь остается только выбрать «File>Print Merge>Perform Merge» (или нажать кнопку <Perform Print Merge> на панели Print Merge), после чего откроется окно Print. Насладиться результатом можно поле нажатия <Print Preview> или <Print>.
Теперь возьмем более сложный случай. Представим, что карты не только номерные, но и именные.
В этом случае нужно добавить записи типа Name1, Name2 … Name9, и в соответствующие ячейки вписать номера счастливых обладателей карт.
Вот теперь стоит вспомнить про «Select from an existing file»!
Кореловский Print Merge понимает файлы трех типов (ODBC пока оставим в стороне): текстовые (*.txt), Comma separated Files (*.csv) и Rich Text Format (*.rtf). В текстовых и RTF файлах поля разделяются двумя обратными слэшами «\\», в файле CSV запятыми. В первой строке файла записывается количество полей, во второй их названия. Например, текстовый файл имеет такой вид:
18
\num1\\name1\\num2\\name2\\num3\\name3\\...\\num9\\name9\
\1\\Иванов\\2\\Петров\\3\\Сидовов\\...\\9\\Кузнецов\
Количество полей, в принципе, можно не писать.
Файл можно подготовить в программе Word или Excel, главное сохранить в правильном формате (например, Excel поля в CSV файле разделяет точкой с запятой).
Теперь запускаем Print Merge Wizard (напомню, «File>Print Merge>Create/Load Merge Fields»), выбираем опцию «Select from an existing file», давим <Next>, и натравливаем Wizard-а на наш файл. Давим <Next>. Теперь Wizard должен считать названия полей проверяем, все ли он правильно понял, давим <Next>.
Видим содержимое полей, проверяем, все ли правильно понято, давим <Next>, давим <Next>, давим <Perform Print Merge> на панели Print Merge. Все!
Напоследок порекомендую обратить внимание на Incremental field data (см. второй рисунок). Это автоматический счетчик. Хотя, если у вас больше одной записи на странице, напрямую их пронумеровать не получится, придется искать обходной маневр, или пользоваться макросом (см. далее).
Вот, собственно, и все, что я хотел рассказать о Print Merge. Остается добавить совсем немного.
Во-первых, хочу сказать, что Print Merge есть и в более ранних версиях Corel DRAW, но, по отзывам, работает там как-то криво (замечу, что Print Merge временами глючит и в «десятке»). Так что результат его работы надо тщательно контролировать. Если работа печатается на PostScript-принтер, то лучше сначала записать PostScript-файл, отдистилить его, и посмотреть получившийся PDF. Или (если принтер не PostScript) печатать на PDF-Writer, проверять, и печатать PDF.
Во-вторых, предлагаю вам Word-овский макрос, который создает специально подготовленный для Print Merge CSV файл с порядковыми номерами. Макрос попросит ввести общее количество номеров, количество номеров на странице, и с какого числа начнется нумерация. Если общее количество номеров не делится на количество номеров на странице, «лишние» номера добавит автоматически. Работает в программе Microsoft Word 97 и новее. В 95-ом не проверял. Инструкция по установке и использованию прилагается. Скачать макрос можно здесь.