2009-01-22 6 views
3

Il arrive souvent que les arrière-plans CSS ne s'impriment pas, mais parfois je les utilise pour transmettre des informations contextuelles. Quel est le meilleur moyen de contourner les arrière-plans CSS qui ne s'impriment pas mais que vous voulez vraiment afficher. L'exemple sur lequel je travaille actuellement est une table qui affiche des informations financières. Différentes couleurs d'arrière-plan sont utilisées pour indiquer à quel point un nombre est «bon» (par exemple très rentable, rentable, neutre, négatif, très négatif).Meilleurs moyens de contourner les arrière-plans CSS Ne pas imprimer

Répondre

2

Deux suggestions:

  1. texte code couleur dans les lignes de la table
  2. Ajouter des icônes de couleur au début ou à la fin des lignes de la table

Vous pouvez même incorporer dans la vue normale avec vos couleurs d'arrière-plan.

0

Vous pouvez rendre la police plus grande et/ou plus gras et/ou italique et/ou colorée.

2

J'ai couru dans la même couleur de problème de codage des données tabulaires en HTML, finalement je vient de passer à la génération de pdf pour les impressions couleur et ne fait noir et blanc disponible en html

6

J'ai utilisé les frontières pour simuler les milieux quand je vraiment besoin d'une couleur de fond. Quelque chose comme ça fonctionne (mais je me excuse de ne pas avoir testé ce):

div.must-have-background-for-print { 
    position: relative; 
    width: 400px; 
} 
div.must-have-background-for-print div.background { 
    position: absolute; 
    top: 0; 
    left: 0; 
    height: 100%; 
    border-left: 400px solid #999; 
} 

En réponse au commentaire de @ Steve Quezadas, l'idée est que, plutôt que d'utiliser un arrière-plan, vous insérez un élément dans l'élément a besoin de l'arrière-plan et lui applique une bordure extrêmement large pour qu'il remplisse l'élément extérieur. Cela exige plus probable que le contenu de cet élément sont aussi à l'intérieur d'une autre enveloppe de sorte qu'ils apparaissent au-dessus du nouvel élément de fond ...

Si vous avez commencé avec ceci:

<div class="has-background">Some stuff in here</div> 

Vous pouvez utiliser cette :

<div class="has-background"> 
    <div class="background" /> 
    <div class="content">Some stuff in here</div> 
</div> 

Ceci est extrêmement moche, mais je l'ai utilisé dans le passé et il résout le problème des couleurs d'arrière-plan ne pas imprimer. Et, avant de le demander, vous devrez adapter le CSS à votre cas spécifique. Je décris simplement le concept d'utilisation de bordures pour remplacer les arrière-plans. Votre implémentation dépendra de la structure de votre page, ce qui est extrêmement difficile si vous ne disposez pas de largeurs ou de hauteurs fixes sur vos éléments.

+0

Je suis un peu confus quant à l'intention du code ci-dessus. Pourquoi le "div.must-have-background-for-print" est-il listé deux fois? Un des blocs a un positionnement "absolu" et l'autre bloc a un positionnement "relatif". De plus, "div.background" recherche une div avec la classe "background", n'est-ce pas? Donc, il y a deux divs? Un pour l'arrière-plan et un autre div pour le contenu qui se superpose à l'arrière-plan? –

+0

@Steve Quezadas: Mise à jour de ma réponse avec une réponse. – Prestaul

2

Il s'agit d'un paramètre de navigateur. Turn on background printing in IE. Ainsi, vous pouvez soit changer les paramètres du navigateur (possible si sur un intranet) OU simplement exporter votre rapport vers Excel ou un autre format pour l'impression.

Questions connexes