User Tools

Site Tools


Print Templates

Most of the receipts that print from the Evergreen staff client software are managed via the Print Template Editor (Administration > Workstation > Print Templates) and can be customized on an individual workstation basis. Typically, library systems will set up the receipts the way they want them to print out on one workstation at a branch, then export the settings as a file and import that file to each of the other workstations at that branch. Some library systems choose to set up different types of workstations (Circulation versus Technical Services, for example) differently depending on the type of work that needs to be done.

If Hatch is installed, receipts can be forced to use specific printer settings (Administration > Workstation > Printer Settings).

There are a few receipts, such as the Evergreen self-checkout receipts, that are controlled through Notification Action Triggers rather than through Print Templates. Changes to the notification action triggers are set on a PINES-wide basis and restricted to PINES staff. Any requests for changes will need to be reviewed for suitability for all PINES libraries.

Types of Print Templates

  • Bills, Current: Listing of current bills on an account.
  • Bills, Historic: Listing of bills that have had payments made on them. This is used on the Bill History Transaction screen.
  • Bills, Payment: Patron payment receipt.
  • Checkin: List of items that have been entered in to the check-in screen.
  • Checkout: List of items currently checked out by a patron during the transaction.
  • Hold Transit Slip: This is printed when a hold goes in-transit to another library.
  • Hold Shelf Slip: This prints when a hold is fulfilled.
  • Holds for Bib Record: Prints a list of holds on a Title record.
  • Holds for Patron: Prints a list of holds on a patron record.
  • Hold Pull List: Prints the Holds Pull List.
  • Hold Shelf List: Prints a list of holds that are waiting to be picked up.
  • In-House Use List: Prints a list of items imputed into In-house use.
  • Item Status: Prints a list of items imputed into Item Status.
  • Items Out: Prints the list of items a patron has checked out.
  • Patron Address: Prints the current patron's address.
  • Patron Data: Prints from the patron edit screen.
  • Patron Note: Prints a note on a patron's record.
  • Renew: List of items that have been renewed using the Renew Item Screen.
  • Transit List: Prints the list of items in-transit from the Transit List.
  • Transit Slip: This is printed when an items goes in-transit to another location.

Customizing Print Templates

Clearing your browser's cache/temporary files will clear any print template customizations that you make unless you are using Hatch to store your customizations. Be sure to export a copy of your customizations as a backup so that you can import it as needed.

If you are modifying your templates and you do not see the updates appear on your printed receipt, you may need to go into Administration > Workstation > Stored Preferences and delete the stored preferences related to the print template that you modified (for example, eg.print.template_context.bills_current).

General Workflow

  1. In Evergreen, go to Administration > Workstation > Print Templates.
  2. Select the Template Name of the receipt you wish to customize.
  3. If you are using Hatch, you can choose different printers for different types of receipts with the Force Content field. If not, leave that field blank.
  4. Make changes in the Template field.
  5. Click Save Locally.
Print Template Editor

Content / Data

The various pieces of data that can be printed on a receipt are limited, and vary by receipt type.


The print templates follow W3C HTML standards (see and can make use of CSS and Angular JS to a certain extent.

Print templates use variables for various pieces of information coming from the Evergreen database. These variables deal with everything from the library name to the due date of an item. Information from the database is entered in the templates with curly brackets. Different types of print templates have access to different pieces of information. Example: {{checkout.title}}

Some print templates have sections that are repeated for each item in a list. For example, the portion of the Checkout print template below repeats every item that is checked out in HTML list format by means of the 'ng-repeat' in the li tag.

<li ng-repeat="checkout in circulations">
Barcode: {{checkout.copy.barcode}}<br/>
Due: {{checkout.circ.due_date | date:"short"}}<br/>

Text Formatting

Goal Original Code Result
Bold (HTML) hello <b>hello</b> hello
Bold (CSS) hello <span style="font-weight:bold;">hello</span> hello
Capitalize circulation <span style="text-transform:capitalize;">circulation</span> Circulation
Currency 1 {{1 | currency}} $1.00
Italics hello <i>hello</i> hello
Underline hello <u>hello</u> hello
Line Break hello there hello<br/>there hello

Horizontal Line

If you want to create a horizontal line going across your entire receipt, you can use the <hr/> (Horizontal Rule) tag which creates a line similar to this:

Text Blocks with Outlines

If you want to create a box on your receipt that has an outline (solid, dotted, or dashed), you can use CSS code to do so. For example:

This code creates a box with a solid, thin (1px) line: <div style="border:1px solid #000">Hello</div>

This code creates the same box, but centers the text that is inside the box: <div style="border:1px solid #000;text-align:center;">Hello</div>

You can change the solid line to a dotted line and make it thicker (3px): <div style="border:3px dotted #000;text-align:center;">Hello</div>

You can also create dashed lines: <div style="border:2px dashed #000;text-align:center;">Hello</div>

Date Formatting

If you do not format dates, they will appear in a system format which isn't easily readable.

Code Result
{{today}} 2017-08-01T14:18:51.445Z
{{today | date:'short'}} 8/1/17 10:18 AM
{{today | date:'M/d/yyyy'}} 8/1/2017
{{today | date:'longDate'}} August 1, 2017

Reference for additional date formats

Currency Formatting

Add “ | currency” after any dollar amount that you wish to display as currency.

Code Result
{{xact.summary.balance_owed | currency}} $2.50

Conditional Formatting

You can use Angular JS to only print a line if the data matches. For example:

Example: Only show email if email notification is selected

This will only print the “Notify by email:” line if email notification is enabled for that hold.

<div ng-if="hold.email_notify == 't'">Notify by email: {{}}</div>

Example: Only show balance if amount is owed

This example for the checkout print template will only print the amount a patron owes if there is a balance:

<span ng-if="patron_money.balance_owed">You owe the library $<nowiki>{{patron_money.balance_owed}}</span></nowiki>

Example: Show note based on circulation modifier

This example is used on the checkout print template by libraries using fines-free circulation modifiers and shows a note when an item is not fines-free.

<div ng-if="!'-ff')"><b>This item is subject to fines.</b></div>

A slight variation is necessary to display the same note on the Items Out template.

<div ng-if="!checkout.copy.circ_modifier.includes('-ff')"><b>This item is subject to fines.</b></div>

Here is an example of showing special instructions for items with the circulation modifier of statepass on the checkout template.

<div ng-if="checkout.copy.circ_modifier.includes('statepass')"><b>To use your statepass... (instructions here)</b></div>

Example: Show note for specific title record

This example shows a note if the item is attached to the title record with '5628015' as the database id on either the checkin or checkout receipt. (You can see the database ID for a title by looking at the record summary information in the staff catalog or by looking at the id in the URL of the title record.)

<div ng-if="checkout.call_number.record == '5628015'" style="border:2px dotted black;padding:10px;"><b>To use the zoo pass... (instructions here)</b></div>

A slight difference is required for the same note to work on the items out receipt:

<div ng-if=" == '5628015'" style="border:2px dotted black;padding:10px;"><b>To use the zoo pass... (instructions here)</b></div>

Example: Use preferred name if available

If the patron has a preferred name stored in their account, you can use a ternary operator to display it instead of the legal name. The first part before the question mark checks to see whether or not there is anything in that field. If there is, then it shows the value of the second part (before the colon). If not, then it shows the value of the third part (after the colon).

{{patron.pref_first_given_name ? patron.pref_first_given_name : patron.first_given_name}}

See also:


To print just a substring of a variable, you can use a *limitTo* function: {{variable | limitTo:limit}} where limit is the number of characters you want.

Original Code Result
The Sisterhood of the Traveling Pants {{checkout.title | limitTo:10}} The Sisterhood of th
123456789 {{patron.card.barcode | limitTo:-5}} 56789


You can use HTML and CSS to add an image to your print template if you have the image uploaded onto a publicly available web server. (It will currently only work with images on a secure (https) site.) For example:

<img src="" style="width:150px;padding:5px;">

Sort Order

You can sort the items in an ng-repeat block using orderBy. For example, the following will sort a list of holds by the shelving location first, then by the call number:

<tr ng-repeat="hold_data in holds | orderBy : ['','volume.label']">


You can use Angular JS to add information from each iteration of a loop together to create a subtotal. This involves setting an initial variable before the ng-repeat loop begins, adding an amount to that variable from within each loop, and then displaying the final amount at the end.

See example of a Bills, Current template with a Subtotal

See example of a Checkout Receipt with Amount Saved

Public Holds Shelf Slips

There are different ways to approach printing out receipts for items that will be left on a public holds shelf for patrons to pick up themselves, but it is always important to remove as much patron information from the printed receipts as possible. The attached example of a customized hold shelf slip print template uses only the first four letters of the patron's last name along with the last four numbers of the barcode. It includes information on the hold arrival date and shelf expiration date, and how the patron was notified, but not the details (ie, patron was notified by email, but does not print the email address). Because staff need to have the patron's phone number for those patrons who opt to be notified by phone, the receipts for those patrons will print the phone number at the very bottom where it can be cut off before the item is placed on the public shelf for pickup.

See example of a Hold Shelf Slip template designed for Self-Service (Public) Holds Shelves

Export / Import Customized Templates

To set up all workstations in a branch in the same way, set up one workstation's receipt templates completely, then use the “Export Customized Templates” to save an external file that you can then Import into other workstations.

Include Text Across Multiple Templates and Workstations

Evergreen allows certain blocks of text on the server to be configured to display across multiple print templates without needing to update the workstations every time the text changes. For example, if a library wishes to promote a different event every day, the library could configure the print templates on each workstation to include 'event text' and then would be able to change the content of that text each day in one location to have the change appear in all locations.

1) Create the Included Text Setting

  1. Go to: Administration > Local Administration > Library Settings Editor
  2. Select the relevant library system or branch.
  3. Add the text (HTML is NOT allowed) to the include you wish to use (eg, event_text). The settings are:
    1. Content of alert_text include
    2. Content of event_text include
    3. Content of footer_text include
    4. Content of header_text include
    5. Content of notice_text include

2) Update Print Templates

  1. Go to: Administration > Workstation > Print Templates
  2. Select a template you wish to include the text on.
  3. Edit the template to add the include tag (eg, {{includes.event_text}}). Possibilities are:
    1. {{includes.alert_text}}
    2. {{includes.event_text}}
    3. {{includes.footer_text}}
    4. {{includes.header_text}}
    5. {{includes.notice_text}}
  4. Click Save Locally.
  5. Repeat for each other template you wish to include the tag on, and for each other workstation.
  6. Log out and then log back in to see the changes.

3) Update Included Text

When you wish to change the text that appears on each receipt, repeat step 1 (step 2 does not need to be repeated).

If you wish to remove the included text, you can clear out the contents of the library setting. There is no need to remove the tag from each of the workstations.

The changes will appear after you log out and then log back in.

admin/workstations/receipts.txt · Last modified: 2023/11/07 20:43 by tmccanna