Molte volte il problema nasce dal fatto che nelle impostazioni di stampa è specificato di non stampare il background.

Ora tu nel tuo browser puoi invertire questa impostazione e far stampare lo sfondo ma non puoi interferire nelle impostazione dell'utente che visita la tua pagina.

L'unica soluzione è mettere lo sfondo dentro a un div sotto agli altri contenuti, ma non come background del div In questo modo risulta come un'immagine qualsiasi e viene stampata