%OP%TM2
%OP%BM2
%OP%LM4
%OP%HE/%H2%Z88 Users' Club Software Library
%OP%FO/Labelprinting/Z88 Users' Club Software Library/Page @P@ of 3/
%CO:A,12,72%%H1%Label printing in Pipedream.%H1%

Sometimes you have data in table form in Pipedream that you wish to 
print on labels. Maybe most often addresses.

Self-adhesive labels on continuous forms and sheets comes in a variety of  
forms. They come one, two, three or four beside each other. Different 
widths and heights.

In a name and address list you usually have the names in the first 
column, the address in the second and so on. The same order as you want 
them on the labels, but then the name on the first line, address on the 
second and so on. The information of the next line in the list should 
then come on the next label.

To make this easier I have designed a formula which makes the transition 
indicated above. It is to be entered and replicated to a block of slots 
to the right of the list. Mark this block and print your labels.

%H1%Here is how you do it:%H1%

Load your list <>FL. 

Name the file with a new name <>FC, in case you make a mistake and then 
save the faulty file, overwriting the original.

Add the number of columns that you have labels beside each other on the 
forms <>EAC.

Load the formula <>FL 'labelpr.pd' with the option 
'Insert at slot, Yes f1'.
In this example slot 'f1' is the top left slot of the new columns.

Edit the formula as follows <>X.

index(row-4*int((row-1)/4),col+3*int((row-1)/4)-5)
          ^             ^                    ^
Enter here the number of columns from the list you want as lines on the 
labels. In this example columns a, b, c and d will be printed.

index(row-4*int((row-1)/4),col+3*int((row-1)/4)-5)
                               ^
Enter here the number of labels you have beside each other on the forms.

index(row-4*int((row-1)/4),col+3*int((row-1)/4)-5)
                                                ^
Enter here the offset from the first column of the list to the first of
the new columns. In this case the offset from column a to f is 5.
Suppose column e contains telephone numbers.

If you have not loaded the formula from the file 'labelpr.pd' but 
entered it directly in this slot, make the slot align left <>LAL.

Replicate the formula to the slots needed <>BRE. 
If in this example of a list with 4 columns the last name is in row 30,
there are 120 slots.
Divided into three columns of labels that means 40 rows.
Copy from slot f1 to slot f1 h40.
Go to 'Options page' <>O. 
Set 'Page length' to the numbers of columns from the list = 
lines/label. In this example 4.
Set 'Top', 'Header', 'Footer' and 'Bottom margins' to 0.

If you have heading lines above the list, they can disturb the first 
row of labels. Either add lines at the top or delete all lines above 
the list.

Mark a block containing the first row of labels <>Z.
Print out your block on plain paper.

Adjust left margin on 'Options page' and column widths to place the text 
correct for each label. You might have to use condensed print if the 
labels are narrow. 

Now mark the first two lines of labels.

If you print out your marked block now, the first row of labels will be 
OK. But your printer is probably set to a page length of 66, 70 
or 72 lines, each 1/6" making 11", 11 2/3" = A4 or 12". So the next row 
of labels will be printed this much below the first.

You must now tell the printer to to use a more suitable page length.

Measure the spacing of the labels from the top of one label to the top 
of the next. 

1. If you are lucky, this is a even number of 1/6", and at least one 
more then the number of lines you wish to print on each label. 
In this example at least 5/6". Let's assume 1"=6/6". 

Go to PrinterEd, []E.
Go to page 2, SHIFT \/ (arrow down). 
Go to the end of the Printer on sequence, <> > (arrow right).

Add a command to set the page length to 6 lines. 
For Epson compatibles you add ',27,"C",6' (not the single quotes '').

2. If you are not so lucky, check if it is an even number of your 
printers smaller linefeed increments. Which might be 1/72", 1/144", 
1/216", 1/120", 1/96", 1/288", half-line spacing or something else. 

Add a command for setting the linefeed to a suitable number to look 
nice on the label. 
A combination of a to short line spacing and the Options pages' line 
spacing set to 2 or 3 can be used.

If line spacing 11/72" looks good, (for Epson '27,"A",11') and you print 
four lines/label, it makes 44/72". 

If the spacing is 68/72", you will want to formfeed 68-44=24/72". 

Replace the code for Formfeed (usually 12), with a linefeed setting of 
24/72", followed by a Line Feed code. For Epson '27,"A",24,10'.

%P0%
3. If you are not even that lucky, don't despair.
Do the best of number 2 above.
Use the 'Wait between pages' option for printing,
and adjust the platen when needed.

The 'Wait between pages' is also useful if you print on sheets.

While you are in PrinterEd, why not make the driver safer to use.

Then go back to page 1, SHIFT ^. 

If the option for 'Off at CR' for 'Ext. sequence' is 'Y', Move the 
cursor to that Y and press Y. 

Update the driver <>FU. 
Go to Index, INDEX. 
Kill the PrinterEd you just left, <>KILL. 
Go back to PrinterEd, []E. The driver is still there.

If you now inspect the 'Printer on" sequence, the "C" or "A" has 
changed to the decimal ASCII-code for capital C or A.

Save the driver for future use, <>FS, with a suitable name (label.prt). 

Enter Index and kill the driver again and it's much safer to use.

The above Y option of the default Epson printer driver is not saved at 
all if you don't enter it specifically. I only guess that drivers in 
ASCII decimal codes are safer because the default driver is such, and 
killed drivers revert to it.

At least since I started doing this, I've had few 'Fails' in PrinterEd.


To fill blank slots in the list, which will show up as 0.00 on the 
labels, put an exact space <> SPACE, in them.
On Epson compatibles this prints as a space.
For others, add a translation, character 160 changes to 32 in PrintEd.

Mark the block of labels to be printed and print out.

After printing, delete the marked block or the whole activity.
Working with a document with many formulas is very slow.

I keep with my lists, the added columns with the right widths, and the 
formula in a slot beside them.

This way I can easily first delete the parts of the list not wanted for 
labels. Then replicate the formula, mark a block, load the driver and 
print. Afterwards I kill the activity.

Z88 Users' Club Member 1080
Dennis Groning
John Bryntessons vag 2
S-662 03  Svanskog
Sweden
%CO:B,12,60%%CO:C,12,48%%CO:D,12,36%%CO:E,12,24%%CO:F,12,12%