|
Prepare a letter
document for printing, without the letterhead, on pre-printed paper |
|
| |
While it is
fairly straightforward to
create a
letterhead document in Word, users may
require that document to be printed on pre-headed paper, and there is no
straightforward method of printing a document without the letterhead
information. The result is that the expensive pre-headed paper is
over-printed with the graphics and text from the document.
It is possible to re-colour the text white and set the
brightness of graphics to 100% which will produce a 'white-out' effect,
but it is a lot of bother when all you want to do is print the document.
With a little foresight, it is possible to automate this
procedure.
Let's start by assuming that you already have a letter
template c/w a letterhead in the header/footer of the first page. We can
use this as the basis of a new template.
The illustrations are from Word 2007, but the principles
involved can be applied to all Word versions.
Open the template in Word for editing. Open the header
view and you will have something like: |
|


|
|
|
Use a
screen capture utility. I would recommend
SnagIt, which is excellent,
and there is a trial version that would enable you to do this. Capture
the relevant parts of the header and footer as images and crop them to
produce graphics similar to those shown below. You will notice that the
'First Page Footer' tab obscures part of the blue background around the
telephone number panel in the example above.
SnagIt
includes a useful graphics editor that makes light work of removing
unwanted parts of the image. Save the two images in your preferred
graphics format - jpg works fine for this. |
|

and

|
|
|
Save the
template with a new name. Then delete the header and
footer content.
Insert the two graphics items into the header and footer
respectively. Set their layout properties to wrap above and below.
Adjust the size to 100% and position the graphics to match their
positions on the pre-printed paper. Close the header view and you should
end up with a template that looks identical to the original template -
see below. Save the changes! |
|
Note: |
Some letterhead formats have continuation pages with
similar or different graphics and text in the header/footer. In such
circumstances create separate graphics from the continuation pages and
insert them into the appropriate header/footer.
If you don't have a Word template to begin with, use a
scanner on the pre-printed paper to produce an image of the letterhead
and crop the header and footer sections, using the graphics editor, to
produce graphics similar to those extracted from the template, as above,
and create a new template in which to include them.
|
|


|
| |
You can now add a macro
to the template to 'white-out' the graphics, print the document
and restore the graphics: The macro below will address 'floating'
graphics of the type suggested above in all the header footer ranges of
the document. |
|
|
When the
macro is run, a dialog box requiring user input provides the choice to
print to plain or pre-printed paper. |
|

|
|
|
If the user selects No, the document is printed
with the letterhead as shown above. If the user selects Cancel or
clicks the white cross in the red corner box, the macro is cancelled and
no printing occurs. A message box informs the user what has occurred: |
|

|
|
|
If
the user selects Yes the letterhead is turned white as shown
below, retaining the position it occupied, and the document is printed.
The letterhead is then restored to its visible state.
It would be possible to rename the macro to
FilePrintDefault thereby intercepting the default print command, but
I personally prefer to simply add the macro to a toolbar button.
You may wish also to incorporate printer commands to
choose a different printer and/or printer trays within the print
routines of the macro. For further information on that see
Print to a Specific
Printer. |
|
|
Sub
PrintLetter()
Dim oDoc As
Document
Dim oSection As
Section
Dim oHeader As
HeaderFooter
Dim oRng As
Range
Dim oFooter As
HeaderFooter
Dim i As Long
Dim sPrint As String
Set oDoc = ActiveDocument
sPrint = MsgBox("Print to letterheaded paper?", vbYesNoCancel, "Print
Letter")
With oDoc
If sPrint = vbNo Then
.PrintOut
Exit Sub
End If
If sPrint = vbCancel
Then
MsgBox "User
Cancelled", vbInformation, "Print Letter"
Exit Sub
End If
For Each
oSection In oDoc.Sections
For Each oHeader In
oSection.Headers
If
oHeader.Exists Then
Set oRng = oHeader.Range
For i = oRng.ShapeRange.Count
To 1 Step -1
oRng.ShapeRange(i).PictureFormat.Brightness = 1#
Next i
End If
Next oHeader
For Each oFooter In
oSection.Footers
If oFooter.Exists
Then
Set oRng = oFooter.Range
For i =
oRng.ShapeRange.Count To 1
Step -1
oRng.ShapeRange(i).PictureFormat.Brightness
= 1#
Next i
End If
Next oFooter
.PrintOut
For Each oHeader In
oSection.Headers
If oHeader.Exists
Then
Set oRng = oHeader.Range
For i = oRng.ShapeRange.Count
To 1 Step -1
oRng.ShapeRange(i).PictureFormat.Brightness = 0.5
Next i
End If
Next oHeader
For Each oFooter In
oSection.Footers
If oFooter.Exists
Then
Set oRng = oFooter.Range
For i =
oRng.ShapeRange.Count To 1
Step -1
oRng.ShapeRange(i).PictureFormat.Brightness
= 0.5
Next i
End If
Next oFooter
Next
oSection
End With
Application.ScreenRefresh
End Sub |