Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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.)
share|improve this question

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.

share|improve this answer
up vote 0 down vote accepted

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.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .