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

IGN API Géoportail Discussion :

Modification de l'impression


Sujet :

IGN API Géoportail

  1. #1
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut Modification de l'impression
    Bonjour à tous,

    j'utilise le module d'impression comme avec la générateur.
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var nv = viewer.getMap().getControlsByClass("Geoportal.Control.NavToolbar")[0];
    nv.addControls([new Geoportal.Control.PrintMapDOM()]);
    Je voudrai savoir s'il est possible de le modifier ; par exemple, on me demande de supprimer la zone de commentaire ?

    Merci d'avance.

  2. #2
    Membre chevronné Avatar de gcebelieu
    Homme Profil pro
    Ingénieur Géographe et Cartographe
    Inscrit en
    Novembre 2010
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Géographe et Cartographe
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2010
    Messages : 1 106
    Points : 1 843
    Points
    1 843
    Par défaut
    Bonjour,

    idéalement, il faudrait passer par les CSS utilisées pour fabriquer la page html d'impression. Seulement, les classes CSS utilisées sont générées automatiquement et comportent des identifiants non prédictibles.

    Du coup, la solution est de surcharger le code de la classe Geoportal.Control.PrintMapDOM qui est utilisé pour qu'il génère le html voulu pour la page.

    Le code de la classe est là :

    http://api.ign.fr/geoportail/api/js/...PrintMapDOM.js

    Typiquement, la méthode qui écrit la zonne de texte pour les commentaires est :

    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
        /**
         * APIMethod: prolog
         * Build the header of the page or URL to print.
         *      Defaults to a textarea for putting comments in.
         *
         * Returns:
         * {String} HTML code of the prolog.
         */
        prolog: function() {
            var html=
    '<div id="pProlog'+this.tick+'">\n'+
      '<form name="pPrologFrm'+this.tick+'" action="javascript:(void)0;">\n'+
        '<div>\n'+
          '<textarea id="pPrologComments'+this.tick+'" name="pPrologComments'+this.tick+'" cols="80" rows="2">'+
    OpenLayers.i18n('gpControlPrintMap.comments')+
          '</textarea>\n'+
        '</div>'+
      '</form>\n'+
    '</div>';
            return html;
        },

    L'idée est d'écrire le code qui génère un bout de html différent et le mettre dans une fonction que l'on va déclarer dans notre application au lancement de la page et qui va écraser le code d'origine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Geoportal.Control.printMapDOM.prolog= function() {
        // ici le code modifié.
        var html="" ; // ou autre si besoin
       return html ;
    }

  3. #3
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Oula ça va trop loin pour moi

    Donc, si j'ai bien compris il suffit d'ajouter la fonction juste avant l'appel de l'impression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Geoportal.Control.printMapDOM.prolog= function() {
        // ici le code modifié.
        var html="" ; // ou autre si besoin
       return html ;
    }
    Ce qui donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //Ajout du contrôle d'impression
    Geoportal.Control.printMapDOM.prolog= function() {
        // ici le code modifié.
        var html="" ; // ou autre si besoin
       return html ;
    }
    var nv = viewer.getMap().getControlsByClass("Geoportal.Control.NavToolbar")[0];
    nv.addControls([new Geoportal.Control.PrintMapDOM()]);
    C'est bien ça ?

    (Je ne suis pas à mon bureau pour tester, donc j'essaye juste de prévoir le maximum de chose pour tester dés que je rentre)

  4. #4
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Plutôt, il me semble:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Geoportal.Control.PrintMapDOM.prototype.prolog = function () {    var html = '';
        return html;
    };

  5. #5
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Ha presque

    Voila ce que ça donne :

    Nom : ApImp00.png
Affichages : 330
Taille : 172,3 Ko

    On a plus les commentaires, mais une partie de la carte aussi

  6. #6
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Bon, j'ai réussit à trouver quelque chose qui fonctionne, mais je ne suis pas certain que ce soit très orthodoxe, je laisse les pros me le dire :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Geoportal.Control.PrintMapDOM.prototype.prolog = function () {
       var html = '&nbsp;<p>&nbsp;</p>';
       return html;
    };

    Alors, combien s'arrache les cheveux ?

  7. #7
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    Il faut alors analyser le dom avec firebug et ajouter des div corrects en conséquence ou modifier les autres parties de la page à imprimer sur le même principe de surcharge de Control.PrintMapDOM...

  8. #8
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Oui, c'est ce que je crois avoir fait dans mon message du dessus (nos messages se sont croisés).

  9. #9
    Membre éprouvé Avatar de cmail
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    1 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Loire (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 730
    Points : 966
    Points
    966
    Par défaut
    var html = '&nbsp;<p>&nbsp;</p>'; Au minimum.

    Mais plus beau en rajoutant par exemple le nom de ta société, l'heure, ou un logo, etc.

  10. #10
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Ha voui, le logo, je n'y avais pas (encore ) pensé mais c'est une super idée.
    Merci beaucoup pour ton aide.

  11. #11
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Et hop, encore une question de résolue, je ne dirai jamais assez merci au forum, donc merci les gars.

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

Discussions similaires

  1. [ZF 1.11] modification pdf puis impression imprimante directe
    Par Australia dans le forum Zend Framework
    Réponses: 3
    Dernier message: 23/07/2012, 18h12
  2. Réponses: 0
    Dernier message: 03/02/2010, 11h58
  3. [WORD] Modification / impression / etc
    Par Rayek dans le forum Delphi
    Réponses: 5
    Dernier message: 06/04/2007, 11h36
  4. Modification de la qualité d'impression
    Par Eusebius dans le forum Matériel
    Réponses: 1
    Dernier message: 06/06/2006, 18h44
  5. Réponses: 3
    Dernier message: 14/12/2005, 12h30

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