Receipt for payment: header fields print black on laser printers [fix]

OpenEMR Community Forum — Bug Fix & Patch

Receipt for payment: header fields print black on laser printers [fix]

Affects

OpenEMR 7.0.4 · interface/patient_file/front_payment.php

Problem: When printing a Receipt for Payment, the header fields — Clinic Name, Invoice No., Date, Description, Price, Qty, and Total — appear highlighted on screen but print as solid black blocks on laser printers.

Root cause: The .mini_table th, .bg-color, and .bg-color-w CSS classes in front_payment.php use background-color: var(--secondary) combined with -webkit-print-color-adjust: exact, which forces the theme’s dark secondary color to print regardless of printer settings.

Fix (in the <style> block, ~line 527):

  1. Change all background-color: var(–secondary) → background-color: transparent
  2. Remove all -webkit-print-color-adjust: exact directives
  3. Change border: 1px solid var(–secondary) on th → border: 1px solid #999

Quick terminal fix (backup first):

sudo cp front_payment.php front_payment.php.bak

sudo sed -i ‘s/background-color: var(–secondary);/background-color: transparent;/g; s/background-color: var(–secondary)!important;/background-color: transparent !important;/g; s/background-color: var(–secondary) !important;/background-color: transparent !important;/g; s/-webkit-print-color-adjust: exact;//g; s/border: 1px solid var(–secondary);/border: 1px solid #999;/’ front_payment.php

Result: Receipt header fields display normally on screen and print cleanly on laser printers with no black backgrounds. Tested on OpenEMR 7.0.4 / Ubuntu 24 / laser printer.

1 Like