IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Convertir une page


Sujet :

JavaScript

  1. #1
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut Convertir une page
    Bonjour,

    Avec un window.open, j'affiche des données issues d'une BDD avec de la mise en forme (Images, couleurs de fond, ...).
    Les utilisateurs souhaitent imprimer cette page, mais à l'impression, c'est la cata. Par exemple, les div avec une couleur de fond cachent une partie du texte.
    J'ai donc pensé à une solution "texte brut", mais c'est un peu lourd. Il faut enregistrer en txt, puis l'ouvrir pour pouvoir l'imprimer.
    Je voudrais aussi éviter de créer une page sans mise en forme spécialement pour ça.

    J'ai un gros doute sur la question qui m'amène, mais sait-on jamais.
    Existe-t-il un "truc" qui permettrait de convertir le contenu de ma popup en texte via un lien sur cette même popup ?
    C'est à dire, basculer l'affichage du format html en format correspondant au format d'un enregistrement en .txt ?

    Et en question bonus (mais là je dois rêver) : et vice-versa ?

    Merci.

  2. #2
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Faire une feuille de style CSS dédiée à l'impression :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <link rel="stylesheet" type="text/css" href="style_print.css" media="print" />
    Incompatible IE <= 8

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Kaamo
    Incompatible IE <= 8
    Euh... non, l'attribut media est tout à fait compatible IE8-...

  4. #4
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Merci,

    Concrètement, ça s'utilise comment, svp ?

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    • Tu cliques sur le lien Sélectionner tout au-dessus du code de Kaamo.
    • Tu appuies sur la touche CTRL puis sur la touche "C" (attention, il faut que CTRL reste appyuée).
    • Tu actives ton éditeur de texte.
    • Tu places le pointeur au niveau des appels de feuilles de style.
    • Attention, partie délicate : tu appuies sur CTRL et en laissant CTRL appuyée, tu appuies sur "V".

  6. #6
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Oups, exact !

    Je pensais à cette déclaration qui n'est pas compatible IE <= 8 :
    Merci de la correction.

  7. #7
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    J'ai trouvé ce qui met le bronx à l'impression.

    Mes div ont un attribut class="arrondi" qui affichent les coins arrondis.
    Si j'enlève cet attribut, tout se passe bien.

    Dans un css media="print", peut-on supprimer cet attribut ou le modifier ?

  8. #8
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    La feuille de style dédiée à l'impression (avec media="print"), c'est la même feuille de style qui est dédiée à l'affichage sans les fioritures de la page web.
    Donc oui, retirer les coins arrondis, enlever le background, cacher les boutons et éléments de formulaires, cacher les pubs, etc etc. Bref, faire une mise en page succincte avec les éléments formatés et souhaités pour l'impression.

  9. #9
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Je suis bien d'accord, mais je ne sais pas comment enlever ces coins arrondis pour l'impression.

  10. #10
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Retirer / Commenter le code en question ??
    C'est border-radius qui gère cela.

    Si le code est bien fait, cela doit se trouver dans la feuille de style de la page. Du coup, la feuille de style dédiée à l'impression est un copié/collé de celle dédiée à l'affichage sur écran, sans cette propriété.
    Sinon c'est défini directement dans le code HTML, et là ça sera plus long et fastidieux à mettre en place

  11. #11
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    C'est un code que je reprends.
    Dans ma page, j'ai ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <style type="text/css">
          div {
            width: 95%;
            padding: 10px;
            background: #ccc;
            border: solid 1px black;
            margin-left:auto;
            margin-right:auto;
     
          }
          div.arrondi {
            -moz-border-radius: 10px;
            -webkit-border-radius: 10px;
            border-radius: 10px;
          }
        </style>
        <!--[if lte IE 8]><script type="text/javascript" src="roundies.js"></script><![endif]-->
    	<script type="text/javascript">
    	DD_roundies.addRule('div.arrondi', '10px');
    	</script>
    .....
    <div class="arrondi" style="background-color:#e7e8ed;">
    .....
    et le js ci-joint.

    C'est cette class arrondi que je voudrait supprimer ou modifier, mais je ne sais pas où faire cela.
    Fichiers attachés Fichiers attachés

  12. #12
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Pourquoi vouloir supprimer les arrondis ??
    Il suffit de créer un autre CSS dédié à l'impression et il n'y aura aucun arrondi lors de l'impression. Et cela permet de conserver les arrondis sur écran

  13. #13
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Merci de continuer de m'aider,

    J'ai bien compris le principe, mais je ne sais pas comment coder le css pour supprimer ces arrondis à l'impression.
    Je suppose que dans un css pour l'impression, on ne peut pas modifier le nom d'une classe ?

  14. #14
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Au style CSS de ta page, tu ajoutes le type de media sur lequel l'appliquer :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <style type="text/css" media="screen">
    div {
      width: 95%;
      padding: 10px;
      background: #ccc;
      border: solid 1px black;
      margin-left:auto;
      margin-right:auto;
    }
    div.arrondi {
      -moz-border-radius: 10px;
      -webkit-border-radius: 10px;
      border-radius: 10px;
    }
    </style>
    Tu ajoutes un style pour l'impression, en enlevant ce qui provoque l'arrondi (border-radius, comme indiqué plus haut) :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <style type="text/css" media="print">
    div {
      width: 95%;
      padding: 10px;
      background: #ccc;
      border: solid 1px black;
      margin-left:auto;
      margin-right:auto;
    }
    </style>
    Pour ce qui est des scripts pour simuler l'arrondi dans les anciens navigateurs, peut être ajouter une variable à l'url de la popup qui permet de les activer ou les désactiver.

  15. #15
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Merci, mais malheureusement, cela ne fonctionne pas (IE8).
    Si je supprime cette ligne, j'ai bien les coins arrondis avec FF, mais pas avec IE.
    <!--[if lte IE 8]><script type="text/javascript" src="roundies.js"></script><![endif]-->
    Même chose si j'enlève class="arrondi" de mes div.
    C'est donc le .js qui permet les coins arrondis pour IE.

    La méthode que j'utilise pour avoir des coins arrondis est mauvaise ?

  16. #16
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Selon moi, oui.
    Les coins arrondis, c'est juste de la cosmétique. Si l'utilisateur fait le choix d'utiliser un navigateur obsolète, alors il aura une mise en page dégradée, inutile de rajouter des rustines qui alourdissent inutilement la page !

  17. #17
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bien sur que c'est de la cosmétique, mais je n'ai pas le choix. Le cahier des charges précise "des cadres avec coins arrondis..."

  18. #18
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    C'est bon, j'ai résolu mon souci d'impression en utilisant curvycorners.js

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. convertir une page HTML en PDF
    Par tatsurou dans le forum ASP
    Réponses: 18
    Dernier message: 10/06/2010, 13h20
  2. Convertir une page aspx en image
    Par commateur dans le forum ASP.NET
    Réponses: 0
    Dernier message: 03/06/2009, 18h04
  3. [PDF] [dompdf] Convertir une page HTML
    Par bourbita.thameur dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 02/04/2009, 15h17
  4. Réponses: 4
    Dernier message: 05/02/2008, 22h55
  5. Réponses: 7
    Dernier message: 25/09/2006, 20h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo