How to print envelopes with addresses from a list
Print addressed envelopes in Publish by Zaweba: use the DL envelope template with its mail-merge address block and merge a CSV of addresses.

To print envelopes from an address list, use the DL envelope template in Publish by Zaweba. It already has a mail-merge address block, so you only need to point it at a CSV file of addresses and merge. Each envelope then prints with its own address. Publish is free, works offline on Windows and needs no account.
It's a job that comes round every Christmas, every AGM and every wedding. Writing fifty envelopes by hand is slow, and a printed address is easier for the post to read.
Getting the address list ready
Two things: Publish, and your addresses in a CSV file. A spreadsheet can save as CSV. Put one address per row and one part of the address per column, such as name, street, town and postcode. The first row must hold the column names, because those names are what you'll see when you place fields.
The mail merge reads comma, semicolon or tab separated files, with quoted fields, in UTF-8 or the Windows code page. That covers what most spreadsheets and address books export. It reads CSV only, so save from your spreadsheet as CSV first.
Merging the envelopes
Create a new publication from the DL envelope template. The address block on it comes with three sample addresses, so you can see how the merge will look before you bring in your own list.
Open Tools > Mail merge and choose your CSV file. If you want to change which columns appear or in what order, click into the address block where you want a field, then click a column to put its field at the caret. Insert > Mail-merge field does the same.
Now step through the preview record by record. This is the moment to catch a long street name that wraps badly or a postcode that has drifted into the wrong column. Fix the data in your spreadsheet and choose the file again if you need to.
When it all looks right, print merged, or export one merged PDF with every envelope in it. The data is kept inside the .ozp file, so you can reopen it next year and see what you sent.
Getting envelopes through the printer
Home printers vary a lot in how they take envelopes, so do a single test on plain paper first. Hold the test against an envelope to check the address lands in the right place, then try one real envelope before the full run.
Publish prints through the Windows print dialog at actual size and centred, scaling down only if the paper is smaller than the page. Set the paper size in the print dialog to match the envelope your printer is loaded with.
If the printer struggles with envelopes, a merged PDF is a good fallback. You can print it later, on another machine, or take it to a print shop.
Making it look personal
A return address or a small logo in the corner of the envelope makes it look finished. Add it to the template once and it prints on every envelope while the address changes. Keep the address itself in a plain, clear font at a good size.
If you also need sticky labels rather than envelopes, Labels by Zaweba is built for label sheets with an address book.
Save the envelope publication, and next time you only need to choose an updated CSV and print.