Partage
  • Partager sur Facebook
  • Partager sur Twitter

L'affichage du print() fonctionne bien sur Chrome

    17 juin 2021 à 14:19:31

    Bonjour à tous,

    je souhaite simplement imprimer une page html via la fonction JS window.print();
    Sous le navigateur Chrome l'affichae est correct, chaque "partie" se trouve sur une page :


    https://ibb.co/m0Lq5Gb

    Mais sous Firefox, il arrive qu'une partie soit entre deux pages (ce qui n'est pas voulu) :


    https://ibb.co/26bbYSQ

    Voici le CSS

    .break-text {
      height: 100%!important;
      word-wrap: break-word;
    }
    
    /* Printable part */
    
    body {
      margin: 0;
      padding: 0;
      background-color: white;
      font: 10pt "Arial";
    }
    
    h1 {
      padding: .25cm;
      margin: .5cm 0;
      color: white;
      font-size: 14pt;
      font-weight: bolder;
      text-align: center;
      background-color: #00b8d4;
      border-radius: 5px;
      text-transform: uppercase;
    }
    
    h2 {
      padding: 0;
      margin: 1cm 0 .5cm 0;
      color: #333;
      font-size: 12pt;
      font-weight: bolder;
      border-bottom: 1px solid #ccc;
    }
    
    hr {
      border: 1px solid #ccc;
      margin: 25px 0;
    }
    
    * {
      box-sizing: border-box;
      -moz-box-sizing: border-box;
    }
    
    .page {
      width: 21cm;
      min-height: 25.7cm;
      padding: .5cm 1cm;
      margin: 1cm auto;
      border: 1px #d3d3d3 solid;
      border-radius: 5px;
      background: white;
      box-shadow: 0 0 1px rgba(0, 0, 0, 0.1);
    }
    
    .page-content {
      padding: 0 .5cm;
      /* Force background elements to be printable */
      -webkit-print-color-adjust: exact;
    
      ul > li {
        list-style-type: circle !important;
      }
    
    }
    
    .crk-chips {
    
      position: relative;
      margin: 0 auto;
      text-align: center;
      color: white;
      font-family: monospace;
      font-size: 1.2em;
    
      img {
        width:105px;
        height:40px;
      }
    
      .crk-chips-text {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
      }
    
    }
    
    @page {
      size: A4;
      margin: 1cm 0;
    }
    
    @media print {
    
      .page {
        margin: 0;
        /*padding: 0 .25cm;*/
        border: initial;
        border-radius: initial;
        width: initial;
        min-height: initial;
        box-shadow: initial;
        background: initial;
        page-break-after: always;
      }
    
      .page-break {
        clear: both;
        page-break-after: always;
        min-height: 1px;
      }
    
      div[aria-live], .corner-ribbon {
        display: none;
      }
    
    }



    Voic l'HTML

    <!DOCTYPE html>
    <html lang="fr">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
        <title>XXXX</title>
    
        <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Copse&display=swap">
    
        <link rel="stylesheet" href="/build/print_promo_codes.css">
    </head>
    
    <body>
    
    <header>
    </header>
    
    <main>
    
        <main class="page" style="display: grid;">
            <section class="page-content">
                <h1>Votre coupon</h1>
    
                <br>
    
                <div class="row">
                    <div class="col s12 center-align">
                        <img src="https://xx.xx.xx/xx/924_381147e1a05e99be028a0d06dcf94fd43c9ec8f2.png" width="50"
                             alt="Logo">
                    </div>
                </div>
    
                <div class="row">
                    <div class="col s12">
                        <div class="card card-track hoverable" style="max-width:60%;margin: auto">
                            <div class="card-image">
                                <img src="/img/_partials/defaultTrackCover.jpg"
                                     style="object-fit: cover;"
                                     alt="cover track">
    
                                <p class="card-title truncate">Renseignez un titre</p>
                            </div>
    
                            <div class="card-content">
                                <p>Renseignez une description</p>
    
                                <hr />
    
                                <p class="guest-name center-align">
                                    <strong>
                                        Guest-OLYYK9
    
                                    </strong>
                                </p>
    
                                <hr />
    
                                <div class="row center-align">
                                    <div class="col s6">
                                        <div class="crk-chips">
                                            <img src="/img/desktop/guide/print_chips.png" alt="" />
                                            <div class="crk-chips-text">OLYYK9</div>
                                        </div>
                                        https://xx.xx.xx/OLYYK9
                                    </div>
                                    <div class="col s6">
                                        <div id="qrcode-OLYYK9" style="display: inline-block;"></div>
                                        <script type="text/javascript">
                                            makeQRCode("qrcode-OLYYK9", "https://xx.xx.xx/OLYYK9");
                                        </script>
                                    </div>
                                </div>
    
                                <div class="row">
                                    <div class="col s12">
                                        <p>Validité :
                                            <strong><span>19/06/2021 12:00</span></strong>
                                        </p>
                                    </div>
                                </div>
    
                            </div>
                        </div>
    
                    </div>
                </div>
    
                <div class="row">
                    <div class="col s12">
                        <h2>Comment utiliser ce coupon ?</h2>
    
                        <ul>
                            <li>Rendez-vous sur le lieu de votre aventure</li>
                            <li>Scannez le QR code ou saisissez l'adresse web dans votre navigateur mobile</li>
                            <li>S'il vous est demandé d'activer votre GPS, cliquez sur "Autoriser"</li>
                            <li>Ca y est ! Vous êtes prêts à démarrer !</li>
                        </ul>
    
                        <p><strong>Conseil :</strong> Pensez à recharger complètement votre smartphone avant de débuter votre aventure.</p>
    
                    </div>
                </div>
                <div class="page-break"></div>
                <h1>Votre coupon</h1>
    
                <br>
    
                <div class="row">
                    <div class="col s12 center-align">
                        <img src="https://xx.xx.xx/xx/924_381147e1a05e99be028a0d06dcf94fd43c9ec8f2.png" width="50"
                             alt="Logo">
                    </div>
                </div>
    
                <div class="row">
                    <div class="col s12">
                        <div class="card card-track hoverable" style="max-width:60%;margin: auto">
                            <div class="card-image">
                                <img src="/img/_partials/defaultTrackCover.jpg"
                                     style="object-fit: cover;"
                                     alt="cover track">
    
                                <p class="card-title truncate">Renseignez un titre</p>
                            </div>
    
                            <div class="card-content">
                                <p>Renseignez une description</p>
    
                                <hr />
    
                                <p class="guest-name center-align">
                                    <strong>
                                        Guest-451BZB
                                    </strong>
                                </p>
    
                                <hr />
    
                                <div class="row center-align">
                                    <div class="col s6">
                                        <div class="crk-chips">
                                            <img src="/img/desktop/guide/print_chips.png" alt="" />
                                            <div class="crk-chips-text">451BZB</div>
                                        </div>
                                        https://xx.xx.xx/451BZB
                                    </div>
                                    <div class="col s6">
                                        <div id="qrcode-451BZB" style="display: inline-block;"></div>
                                        <script type="text/javascript">
                                            makeQRCode("qrcode-451BZB", "https://xx.xx.xx/451BZB");
                                        </script>
                                    </div>
                                </div>
    
                                <div class="row">
                                    <div class="col s12">
                                        <p>Validité :
                                            <strong><span>19/06/2021 12:00</span></strong>
                                        </p>
                                    </div>
                                </div>
    
                            </div>
                        </div>
    
                    </div>
                </div>
    
                <div class="row">
                    <div class="col s12">
                        <h2>Comment utiliser ce coupon ?</h2>
    
                        <ul>
                            <li>Rendez-vous sur le lieu de votre aventure</li>
                            <li>Scannez le QR code ou saisissez l'adresse web dans votre navigateur mobile</li>
                            <li>S'il vous est demandé d'activer votre GPS, cliquez sur "Autoriser"</li>
                            <li>Ca y est ! Vous êtes prêts à démarrer !</li>
                        </ul>
    
                        <p><strong>Conseil :</strong> Pensez à recharger complètement votre smartphone avant de débuter votre aventure.</p>
    
                    </div>
                </div>
                <div class="page-break"></div>
                <h1>Votre coupon</h1>
    
                <br>
    
                <div class="row">
                    <div class="col s12 center-align">
                        <img src="https://xx.xx.xx/xx/924_381147e1a05e99be028a0d06dcf94fd43c9ec8f2.png" width="50"
                             alt="Logo">
                    </div>
                </div>
    
                <div class="row">
                    <div class="col s12">
                        <div class="card card-track hoverable" style="max-width:60%;margin: auto">
                            <div class="card-image">
                                <img src="/img/_partials/defaultTrackCover.jpg"
                                     style="object-fit: cover;"
                                     alt="cover track">
    
                                <p class="card-title truncate">Renseignez un titre</p>
                            </div>
    
                            <div class="card-content">
                                <p>Renseignez une description</p>
    
                                <hr />
    
                                <p class="guest-name center-align">
                                    <strong>
                                        xxxx
                                        xxx
                                    </strong>
                                </p>
    
                                <hr />
    
                                <div class="row center-align">
                                    <div class="col s6">
                                        <div class="crk-chips">
                                            <img src="/img/desktop/guide/print_chips.png" alt="" />
                                            <div class="crk-chips-text">SJ04H0</div>
                                        </div>
                                        https://xx.xx.xx/SJ04H0
                                    </div>
                                    <div class="col s6">
                                        <div id="qrcode-SJ04H0" style="display: inline-block;"></div>
                                        <script type="text/javascript">
                                            makeQRCode("qrcode-SJ04H0", "https://x.xxxx.xxx/SJ04H0");
                                        </script>
                                    </div>
                                </div>
    
                                <div class="row">
                                    <div class="col s12">
                                        <p>Validité :
                                            <strong><span>18/06/2021 12:00</span></strong>
                                            <span>au</span>
                                            <strong><span>19/06/2021 12:00</span></strong>
                                        </p>
                                    </div>
                                </div>
    
                            </div>
                        </div>
    
                    </div>
                </div>
    
                <div class="row">
                    <div class="col s12">
                        <h2>Comment utiliser ce coupon ?</h2>
    
                        <ul>
                            <li>Rendez-vous sur le lieu de votre aventure</li>
                            <li>Scannez le QR code ou saisissez l'adresse web dans votre navigateur mobile</li>
                            <li>S'il vous est demandé d'activer votre GPS, cliquez sur "Autoriser"</li>
                            <li>Ca y est ! Vous êtes prêts à démarrer !</li>
                        </ul>
    
                        <p><strong>Conseil :</strong> Pensez à recharger complètement votre smartphone avant de débuter votre aventure.</p>
    
                    </div>
                </div>
                <div class="page-break"></div>
    
            </section>
        </main>
    </main>
    
    <script>
        $(document).ready(function() {
    
            window.print();
        });
    </script>
    
    </body>
    
    </html>


    La classe css .page-break est utilisée après chaque nouvelle partie dans le foreach.

    Quelqu'un a t-il déjà eu se problème et aurait une piste pour le résoudre ?

    Je vous remercie d'avance.

    -
    Edité par S@yf 17 juin 2021 à 14:22:05

    • Partager sur Facebook
    • Partager sur Twitter

    Un cerveau c'est bien, plusieurs c'est mieux !

    L'affichage du print() fonctionne bien sur Chrome

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown