1. sì, devi usare 2 cicli for, uno che stampi il tr e l'altro che inserisca il td delle colonne.

2. devi sceglirere. Se lo devi stampare allora non puoi usare il colore di sfondo perchè disabilitato di default nella stampa del browser.
Per abilitarlo dovresti accertarti manualmente che il client lo abbia selezionato.

In alterativa la logica di usare una img non + malvagia, devi però sviluppare una funzione di calcolo che ti crei esattamente la lunghezza e l'img che ti serve.