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):
- Change all background-color: var(–secondary) → background-color: transparent
- Remove all -webkit-print-color-adjust: exact directives
- 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.