Change field shading with JavaScript when printing

What if you want to display shaded fields to assist with on screen filling
out of forms, but when you print the final version, you want the fields to
be unshaded. And, you want to use your own custom color to shade the
fields?

Well, with a little bit of JavaScript, the problem is solved below. See this working example in PDF.

  • To write the least amount of JavaScript, create field names that are
    hierarchical. For example, if you have 5 fields – Name, Company, URL, Email,
    and Phone – if you name them as ‘color.Name’, ‘color.Company’, ‘color.URL’,
    ‘color.Email’, and ‘color.Phone’ then you only need one JavaScript command
    to turn on/off all the fields at once.
  • Create custom RGB color at the Document Level:

color.MyColor = new Array('RGB', .75, 1, 1);

Note: Although Acrobat displays the color as 191,255,255 in the Color
Palette, you will have to divide each by 255 to get the values required for
the color Array.

  • Create a document level JavaScript to ‘turn off’ the color:

function PrintNoColors()
{
var f=this.getField('color');
f.fillColor = color.white;
}

  • Create a document level JavaScript to ‘turn on’ the color:

function ResetColor()
{
var f=this.getField('color');
f.fillColor = color.MyColor;
}

  • Add the function ‘PrintNoColors()’ on ‘Doc Will Print’ (Tools >
    JavaScripts > Document Actions)
  • Add the function ‘ResetColor()’ on the ‘Doc Did Print’ (Tools >
    JavaScripts > Document Actions)

You May Also Like

About the Author: Lori DeFurio

Leave a Reply