Printare fara dialog din pagina web

Va salut! Am creat aceasta pagina web

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Bootstrap 4 Horizontal Form Example</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"/>
    <style>
        form {
            padding: 40px 40px 20px !important;
            background: #ebeff2;
        }
        .mt32 {
            margin-top: 32px;
        }
        label {
            margin-top: 0.3em;
        }
    </style>



</head>
<body>
<div class="container">
   

    <form class="mt32" action="#">
        <div class="form-group row">
            <label for="client" class="control-label col-sm-2">Client</label>
            
            <div class="col-sm-10">
                <select class="form-control item" id="client">
                    <option>Sidercrom</option>
                    <option>Kaluga</option>
                    <option>CMC</option>
                    <option>BBS</option>
                    <option>Mario</option>
                  </select>
            </div>
        </div>
        <div class="form-group row">
            <label for="nrcom" class="control-label col-sm-2">Numar Comanda</label>
            <div class="col-sm-10">
              <input type="datetime" class="form-control" id="nrcom" value="VNMT">
            </div>
        </div>
        <div class="form-group row">
            <label for="codprodus" class="control-label col-sm-2">Cod Produs</label>
            <div class="col-sm-10">
                <select class="form-control item" id="codprodus">
                    <option>CB</option>
                    <option>CBM</option>
                    <option>CT</option>
                    <option>CBV</option>
                    <option>WV</option>
                  </select>
            </div>
        </div>
        
        <div class="form-group row">
            <label for="material" class="control-label col-sm-2">Material</label>
            <div class="col-sm-10">
                <select class="form-control item" id="material">
                    <option>20MnV6</option>
                    <option>C45E</option>
                    <option>42CrMO4</option>
                    <option>E355+SR</option>
                    <option>CF53</option>
                  </select>            </div>
        </div>


        <div class="form-group row">
            <label for="sarja" class="control-label col-sm-2">Sarja</label>
            <div class="col-sm-10">
             <input type="text" class="form-control" id="sarja" placeholder="Sarja">
            </div>
        </div>
        <div class="form-group row">
            <label for="diametru" class="control-label col-sm-2">Diametru</label>
            <div class="col-sm-10">
             <input type="number" class="form-control" id="diametru" placeholder="Diametru">
            </div>
        </div>
        <div class="form-group row">
            <label for="toleranta" class="control-label col-sm-2">Toleranta</label>
            <div class="col-sm-10">
                <select class="form-control item" id="toleranta">
                    <option>f7</option>
                    <option>f8</option>
                    <option>h6</option>
                    <option>h7</option>
                    
                  </select>
            </div>
        </div>
        <div class="form-group row">
            <label for="lungime" class="control-label col-sm-2">Lungime</label>
            <div class="col-sm-10">
             <input type="number" class="form-control" id="lungime" placeholder="Lungime">
            </div>
        </div>


        <div class="form-group row">
            <label for="stratcr" class="control-label col-sm-2">Strat Crom</label>
            <div class="col-sm-10">
             <input type="text" class="form-control" id="stratcr" placeholder="Strat Crom">
            </div>
        </div>

        <div class="form-group row">
            <label for="nrpiese" class="control-label col-sm-2">Numar Piese</label>
            <div class="col-sm-10">
             <input type="number" class="form-control" id="nrpiese" placeholder="Numar Piese">
            </div>
        </div>

        <div class="form-group row">
            <label for="opvizual" class="control-label col-sm-2">Operator Vizual</label>
            <div class="col-sm-10">
             <input type="text" class="form-control" id="opvizual" placeholder="Operator Vizual">
            </div>
        </div>



        <div class="form-group row">
            <label for="opambalare" class="control-label col-sm-2">Operator Ambalare</label>
            <div class="col-sm-10">
             <input type="text" class="form-control" id="opambalare" placeholder="Operator Ambalare">
            </div>
        </div>

        <div class="form-group row">
            <label for="dambalare" class="control-label col-sm-2">Data Ambalare</label>
            <div class="col-sm-10">
             <input type="date" class="form-control" id="dambalare" placeholder="Data Ambalare">
            </div>
        </div>

        <div class="form-group row">
            <label for="ctc1" class="control-label col-sm-2">CTC 1</label>
            <div class="col-sm-10">
             <input type="text" class="form-control" id="ctc1" placeholder="CTC 1">
            </div>
        </div>

        <div class="form-group row">
            <label for="ctc2" class="control-label col-sm-2">CTC 2</label>
            <div class="col-sm-10">
             <input type="text" class="form-control" id="ctc2" placeholder="CTC 2">
            </div>
        </div>




        <div class="form-group row">
            <div class="offset-sm-2 col-sm-10 pull-right">
                <button type="submit" class="btn btn-primary">Printeaza</button>
            </div>
        </div>
       
    </form>


   
   
</div>
</body>
</html>

Ma intereseaza daca se poate realiza o printare directa dupa un smartphone, fara sa imi afiseze dialogul de printare?

Nu e posibil asa ceva din browser.

Poti in schimb salva local intr-un folder PDF-ul la click si sa ai un serviciu/o aplicatie locala care sa ia fiecare PDF nou din acel folder si sa il trimita direct la imprimanta.

Daca e vorba de o imprimanta legata in retea sau in cloud are un API pe care il poti chema din aplicatie ca sa te conectezi direct la imprimanta.

Mai e o optiune la Chrome si Edge numita kiosk-printing, poti crea o aplicatie si sa setezi shortcut-ul ca in raspunsul de aici:
Kiosk Printing in Edge Site App - Microsoft Community

Acum nu stiu daca mai functioneaza fiindca scrie ca s-a scos din ultimile versiuni, daca nu functioneaza vezi optiunea de silent print in about:config in Firefox.

Eventual folosesti ceva de genul:
qzind/tray: Browser plugin for sending documents and raw commands to a printer or attached device. (github.com) ( qz | Home)
PrintNode Ltd (github.com)

1 Like

Multumesc mult pentru raspuns. Dar acestea pot functiona si pe Android?

Cât de mult te-ar deranja dacă la fiecare site vizitat începe imprimanta să scuipe câteva pagini razna?

1 Like

Nu, iti trebuie o aplicatie dedicata pentru Android.

pe mine ma intereseaza doar pentru site-ul local, unde completez formularul

@iamntz zice că din motive de securitate un browser nu ar trebui nici în ruptul capului să permită “unattended printing”. Valabil pentru orice resursă locală, de exemplu browserul nu poate (sau mai corect, “nu vrea”) uploada fișiere fără să te întrebe.

Dacă e un site local, nu te oprește nimic să printezi de pe “server side”.

3 Likes

Nu sunt foarte sigur, dar cred că nici o aplicație nativă nu poate printa fără dialog.

Darrrr… dacă se poate ȘI este pentru un mediu controlat (e.g. intranet), atunci poți dezvolta o aplicație nativă și o extensie care interacționează cu aplicația respectivă.

Care este use-case-ul pentru care ai nevoie de așa ceva?

Aplicațiile native pot să printeze direct (cum de altfel au acces nelimitat la orice resursă locală), ele doar fac submit la spooler prin API, dialogul nici măcar nu e ceva “standard”. Dar evident, o aplicație standalone e cu totul altă poveste.

2 Likes

Cu flagul --kiosk-printing poti face treaba asta in Chrome. Tocmai ce am testat si inca merge. Totusi dialogul de print apare si dispare, nu este scos complet.

Poti oricand lua chromium pentru Android si sa ii pui la print ceva ca sa accepte automat dialogul.
E destul de complicat de compilat totusi.


Am acest formular. Eu trebuie sa iau niste date din sectie, sa le completez in formularul respectiv, si sa le printez pe o eticheta “lipicoasa”. Doresc sa nu imi mai apara dialogul de printare pentru a castiga timp.

1 Like

daca este pt tine poate merge ce este in link

Cred că cel mai simplu să rulezi o formă oarecare de headless-Chrome pe server și faci submit la el pentru a face print. Sau în loc de browser faci o aplicație simplă cu Electron, care în cele din urmă tot un soi de browser este.

2 Likes

nu merge, am incercat deja

Ce anume nu merge ?
Trebuiesc inchise toate procelese de Chrome inainte sa rulezi shortcut-ul cu flag aplicat.

am folosit acum FireFox, pe silent print, dar pe Android nu merge sa setez silent print

Da, formularul il pot completa si de 100 de ori intr-o zi. Ideal ar fi cum apas Print sa si iasa eticheta.Pe Desktop am gasit solutia cu silent print in Firefox, dar pe mine ma intereseaza pe Android.

ca si idee, cum pot face asta?

Nu vad nimic mentionat de Android in cerinta.
In al doilea post ai intrebat daca oare poate functiona acel lucru si pe Android, nu ca iti trebuie neaparat pentru Chrome versiunea de Android.

Invata sa ceri exact ce ai nevoie, nu sa spui pe parcurs doleantele. Dupaia tot noi picam prost ca vezi doamne suntem trolli. :troll: