Re: Print Merge - текст из файла

Написал asat в 22/06/2006 15:45:40

где взял не помню...
пусть реальный автор этого текста не обижается


Печать различной информации в формах

Приходилось ли вам печатать однотипные визитки многим людям сразу? Кроме обычного способа, предполагающего создание отдельной визитки для каждого человека, существует и другой, более удобный. Рассмотрим его на примере изготовления двух визиток — Ивана Иванова и Петра Петрова. Используем способность DRAW подставлять необходимые данные на стадии печати. Раньше нужный пункт меню Print Merge находился в File, теперь его там нет. Неужели исключили из программы абсолютно работоспособную операцию? Конечно же, нет. Откройте Tools/Options и перейдите в Workspace/Customize/Menus. Выбрав пункт Commands, раскройте File & Layout, после чего перейдите в пункт File. Из всего списка команд выберите Print&Merge, после чего на правой панели из Menu раскройте &File. Нажмите кнопку Add и пользуясь кнопками Move Down и Move Up, переместите команду в то место, куда хотите. Нажмите ОК. После этого «спрятанный» пункт появится там, где мы и указали — в меню File.

Подготовительный этап пройден. Теперь перейдем непосредственно к изготовлению визитки. Для этого сделаем ее макет полностью, но вместо строк с указанием конкретной информации о человеке создадим специальные строки-заготовки, в которые будут подставляться наши данные. Например, вместо текстовых строк «Имя», «Должность», «ТелНомер» и «ФаксНомер» в процессе печати будут подставляться соответствующие личные данные. Эти строки пока — абсолютно обычные объекты и их специальное предназначение проявится только позже.

А пока помните, что каждой текстовой строке, вместо которой будет подставляться другой текст, должен соответствовать отдельный текстовый объект и он должен иметь тип Artistic text. В нашем случае, строки «Тел:» and «Факс» должны быть двумя отдельными объектами, а не одним.

Кроме того, следует иметь в виду, что подставляемый текст получит те же самые атрибуты символов (полужирный, наклонный, размер шрифта, расстояние между символами) и атрибуты абзаца (выравнивание влево, по центру, вправо), что и заготовка. Единственное ограничение — на применение операций Blend, Extrude и Fit To Path).

После создания макета визитки со строками-заготовками, перейдем в подготовке личной информации к виду, понятному DRAW. Для этого в любом текстовом редакторе создадим чистый документ и напишем в нем несколько строк со специальной информацией. В первой строке укажем количество строк-заготовок в документе. В нашем случае их четыре (Имя, Должность, ТелНомер и ФаксНомер). Во второй строке нужно вписать текст заготовок в такой последовательности, в какой он будет подставляться. Перед текстом должен стоять символ обратной черты (backslash, «\»). Можно писать тексты на отдельной строке, а можно объединить их в одной, при этом каждое слово будет отделено от другого двумя «\».

После этого впишем личные данные каждого человека. Как и раньше, все записи заключаем с обеих сторон в «\».

В результате получим:

4
\Имя\\Должность\\ТелНомер\\ФаксНомер\
\Иванов Иван\\Директор\\450 12 35\\450 67 16\
\Петров Петр\\Бухгалтер\\450 09 32\\450 22 18\

Сохраним документ в виде только текстового файла (*.TXT) без форматирования.

Перейдем в DRAW и выберем пункт File/Print Merge. Укажите расположение только что созданного файла и после того, как принтер закончит печатать, вы почувствуете, что теперь вы — уже не простой «юзер», а «продвинутый» (рис. 3, 4).

А теперь — одно замечание. Print Merge для каждой строки-заготовки подставляет только одно значение, поэтому если возникнет необходимость напечатать несколько разных визиток на одной странице, то вам потребуется видоизменить начало текстового файла. Например, для первой визитки строка может быть такой: «Имя1», «Должность1», «ТелНомер1» и «ФаксНомер1», для второй — «Имя2», «Должность2», «ТелНомер2», и «ФаксНомер2». Текст в нашем файле примет такой вид:

8
\Имя1\\Должность1\\ТелНомер1\\ФаксНомер1\
\Имя2\\Должность2\\ТелНомер2\\ФаксНомер2\
\Иванов Иван\\Директор\\450 12 35\\450 67 16\
\Петров Петр\\Бухгалтер\\450 09 32\\450 22 18\

Где 8 — общее количество строк, которые будут заменены (4 для одной визитки и 4 для другой). После печати документа в DRAW вы получите на одном листе бумаги две разные визитки.

Как видите, знание возможностей программы существенно облегчает жизнь. Автор этих строк лично прочувствовал это, когда ему пришлось делать однотипные визитки более чем для 100 человек!

Однако созданием только визиток возможности печати уникальной информации не ограничиваются. Например, может возникнуть необходимость напечатать ряд увеличивающихся цифр, для автонумерации бланков. Эту задачу можно легко автоматизировать в DRAW, если установлен Corel Script Editor. Так будет выглядеть скрипт (пользовательский сценарий) для создания 1000 чисел:

CONST Num%=1000
OPEN «1.TXT» FOR OUTPUT AS #1
FOR i%=1 TO Num
PRINT #1,»\»+RIGHT(«0000»+LTRIM(STR(i)),5)+»\»
NEXT i%
CLOSE #1

Вот, собственно, и все. После его запуска создается документ 1.txt со строками 0001, 0002, ... 1000, которые можно потом использовать для автонумерации.

Источник: https://powerclip.ru/modules/newbb/viewtopic.php?post_id=32465

Rambler's Top100