Our company has letterheaded paper (pre-printed paper with our logo on it). Whenever we send something out by mail, we print it on that paper. However, when we send the same document via email, we convert it to a PDF file.

Now the problem is: when converting a Word document to PDF, it should contain the letterhead. When printing the same document on paper, it should not (or else the letterhead would be printed twice).

Currently, we are using two different Word document templates - one with letterhead, one without. So whenever we want to add or remove the letterhead, we have to create a new document with the other template and copy and paste everything over. Nasty solution. What I'm looking for is some simple way to switch the letterhead on and off.

What I've tried so far:

  • Switching the template: There does not seem to be a simple way to switch the template for an existing document.
  • Using a picture watermark: Our letterhead goes all the way to the border of the page. (No printer supports this, of course, but it is fine for export to PDF.) Apparently depending on the current default printer, Word will not allow a borderless watermark, instead shifting the image around.
  • Using the page header: When editing the page header, I can insert pictures at arbitrary positions, which is great. However, I could not find a way (short of macros) to enable/disable just the pictures in the header. (The text should remain there.)

You could try to experiment with conditional text in the header based on a document property like the category. If you enter "PDF" in the category the header will be printed, if you erase it the header disappeares.

Try this simple example:

{IF {DOCPROPERTY Category}="PDF" "This is the header text..." ""}

I am not sure how to extract the printer name being used during the printing phase, but at least this could simplify things.


Being a software developer, I finally went for the programming solution and developed a custom Word ribbon in C#.

I realize this is not a satisfying answer for non-developers, but unfortunately, I cannot attach the plugin to this message. However, if you have access to a programmer, this should get him started:

private static void ShowHeaderImages(bool show) {
  foreach (Section section in WordDoc.Sections) {
    foreach (HeaderFooter header in section.Headers) {
      foreach (Shape shape in header.Shapes) {
        bool isGraphic =
          shape.Type == MsoShapeType.msoPicture ||
          shape.Type == MsoShapeType.msoLinkedOLEObject;
        if (isGraphic) {
          shape.Visible = show ? MsoTriState.msoTrue : MsoTriState.msoFalse;

Note that while this is C# code, it could trivially be converted to a VBA macro.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.