Robbinsan: Drucken aus dem Formular heraus

Einen wunderschönen Tag allerseits !

Ich stöbere hier jetzt schon eine ganze Weile, finde aber leider nicht DIE Lösung für mein relativ kleines Problem. Ich würde mich freuen, wenn mir jemand helfen oder einen geeigneten Link schicken könnte.

Ich habe eine Datenbank bei einem öffentlichen Anbieter, auf die ich per mysqli zugreife und serverseitig mittels php eine html-Seite erstellen lasse.

Das Ergebnis ist (Beispiel) jeweils ein Datensatz (von vielen) aus der Datenbank mit einem Personennamen, Anschrift, Telefonnummer, Geburtstag, Foto und und und.

Jetzt möchte ich genau dieser Person einen Brief oder ein Paket schicken und benötige einen oder mehrere entsprechenden Addressaufkleber. Ein entsprechender Drucker ist lokal angeschlossen. Wie ist da der optimale und anwenderfreundlichste Weg inklusive Seitenvorschub?

Vielen Dank Robbinsan

  1. Wie ist da der optimale und anwenderfreundlichste Weg inklusive Seitenvorschub?

    PDF Datei erzeugen. MFG

  2. Mit HTML2PDF eine PDF erzeugen und diese ausdrucken, ist der einfachste, schnellste und schönste Weg.

    1. Mit HTML2PDF eine PDF erzeugen und diese ausdrucken, ist der einfachste,

      Ja.

      schnellste

      Je nach dem, welche Geschwindigkeit (in Bezug auf welchen Vorgang) gewertet wird.

      und schönste Weg.

      Das "schönste" Ergebnis liefert html2pdf gerade nicht. Es gibt nämlich den weiteren Weg über ein Template (tex-Dokument) und sodann pdflatex welches das PDF aus der Vorlage erzeugt. Das kann man downloaden oder (auf dem Server) ebenso direkt drucken.

      • Tipp: Die Vorlage (eine editierbare Textdatei) kann man z.B. aus Libreoffice exportieren und sodann die später zu ersetzenden Platzhalter einbauen und sogar einiges in der Vorlage noch manuell anpassen. Im Kern ist das die gleiche Vorgehensweise wie bei einem HTML-Template.
      $command = "pdflatex  -interaction=nonstopmode -synctex=0 -output-directory=/tmp " . $tmpfile . ".tex";
      $dummy = exec($command);
      

      Was danach mit dem Ergebnis (in $tmpfile . ".pdf") geschieht ist offen. Man kann es senden, drucken, löschen, an ein anderes Dokument anhängen, archivieren, signieren, verschlüsseln oder was auch immer gefällt (und mit der auf dem Server installierten Software möglich ist.) In dieser Hinsicht wird es bei shared hosts, also im Massenhosting, aber garantiert zu Problemen kommen.

  3. Liebe(r) Robbinsan,

    und benötige einen oder mehrere entsprechenden Addressaufkleber. Ein entsprechender Drucker ist lokal angeschlossen.

    man kann mit der Layoutsprache CSS Anweisungen für das Erscheinungsbild bei Printmedien regeln. Damit sollte eine geeignete Darstellung für den Druck direkt aus dem Browser heraus möglich sein, ohne den Weg über die Erzeugung eines PDF-Dokuments zu gehen.

    Liebe Grüße

    Felix Riesterer

    1. Das ist aber sehr unschön wenn es ein vernünftiger Ausdruck sein soll. Früher als ich das letzte mal so etwas gemacht habe hatte ich ganz unten immer die URL der Webseite mit auf dem Ausdruck, war immer sehr unschön. Deshalb bin ich direkt auf HTML2PDF umgestiegen.

      1. hatte ich ganz unten immer die URL der Webseite mit auf dem Ausdruck, war immer sehr unschön

        Das ist die Voreinstellung wie die reichlich bemessenen nicht druckbaren Ränder.

        Beim Firefox gibst du in die Adresszeile ein about:config und kannst dann nach footer suchen und einstellen. Da ich alle vier print_margin auf Null gestellt habe, gibt es keine footer.

  4. Hallo Robbinsan,

    Ein entsprechender Drucker ist lokal angeschlossen.

    Damit meinst Du was? Ein spezieller Adressetikettendrucker? Oder ein A4-Drucker, dem Du einen Bogen mit Abziehetiketten einlegst?

    Rolf

    --
    sumpsi - posui - clusi
  5. Hallo Robbinsan,

    schon mit DOS-Programmen habe ich eine Rechnung auf dem Drucker LPT1 und gleichzeitig ein Versand-Etikett auf LPT2 gedruckt. Zwei Nadeldrucker mit seitlich gelochten Papierbahnen ratterten gleichzeitig.

    Das ist mit Browsern leider nicht machbar, man darf nur einen Druck starten (nicht zwei) und dafür einem bestimmten Drucker manuell auswählen. Die Umsetzung der Seite auf PDF hilft überhaupt nicht weiter. Es sei denn, man möchte ein HTML-Dokument per Mailanhang verschicken.

    Mit dem Firefox drucken meine Kunden HTML-Seiten schon seit zwei Jahrzehnten, nachdem sie die Seitenränder auf 0 (Ziffer Null) gesetzt und das Format (hoch / breit) eingestellt haben.

    Der damals verunglückte Internet Explorer mit seinen Extra-Würsten verstand die Drucker-Kommandos überhaupt nicht. Ich habs nicht weiter verfolgt, hat er überhaupt noch einen Marktanteil?

    Aber auch der Firefox ignoriert CSS-Angaben zum Hoch- oder Querformat, zu den Seitenrändern und zum Duplex-Druck. Das muss man alles von Hand einstellen und hoffen, dass der nächste Druckauftrag diese Einstellungen noch kennt.

    So weit ich weiß, unterstützen Browser nur Ganzseitendrucker und senden nach jedem Druckauftrag einen Seitenvorschub. Der Druck eines einzelnen Etiketts - Fehlanzeige.

    Hier die wichtigsten CSS-Angaben, die ich verwende und die unter den gegebenen Problemen brauchbare A4-Seiten vom Firefox liefern:

    .seite {
      page-break-before: always; /* Vorschub vor jeder Seite */
    }
    .seite nth-of-type(1) {      /* ausgenommen erste Seite */
      page-break-before: avoid;
    }
    .position {
      page-break-inside: avoid;  /* kein Seitenumbruch im Container class=position */
    }
    

    Gruß, Linuchs

    1. hi,

      schon mit DOS-Programmen habe ich eine Rechnung auf dem Drucker LPT1 und gleichzeitig ein Versand-Etikett auf LPT2 gedruckt. Zwei Nadeldrucker mit seitlich gelochten Papierbahnen ratterten gleichzeitig.

      Und was hilft das dem OP? MFG

      1. Hallo,

        Das hilft dem OP insofern, als er dadurch einwenig die Erfahrung des Antwortenden einschätzen kann.

        Hallo @all, kommt mal raus euren Pessimismus-Löchern! Ja, es ist heiß, aber hey, wenns kalt ist, ist auch wieder nicht schön…

        Gruß
        Kalk

        1. Hallo,

          Das hilft dem OP insofern, als er dadurch einwenig die Erfahrung des Antwortenden einschätzen kann.

          Falls der überhaupt hierher wiederkommt.

          Hallo @all, kommt mal raus euren Pessimismus-Löchern! Ja, es ist heiß,

          Da muss man sein Fitnessprogramm eben in die frühen Morgenstunden verlegen. Geht.

      2. Die Frage nach dem Seitenvorschub habe ich beantwortet und auf das Problem ungenutzter Etiketten hingewiesen, wenn nur eines pro Seite gedruckt wird.

        Hatte ein wenig Hoffnung, dass mein Vorschlag ergänzt wird.

        Also - wie druckt man einen einzelnen Adress-Aufkleber mit beliebigen Browsern?

        EDIT: Sehe gerade das Stichwort Datenbank. Eine Datenbank kann überhaupt nicht drucken. Deshalb nehme ich an, dass der Fragesteller unsicher ist und eine Einschätzung des Problems nützlich ist.

        Auf unsinnige Fragen kann kein Ratschlag auf den Punkt kommen, das muss eine Diskussion mit weiteren Informationen ergeben.

        1. Also - wie druckt man einen einzelnen Adress-Aufkleber mit beliebigen Browsern?

          Als PDF, aber nicht mit dem Browser sondern mit dem Acrobatreader. Und dann wäre noch die Frage ob der Drucker das Papierformat unterstützt mit dem die PDF erstellt wurde. MFG

          1. Als PDF, aber nicht mit dem Browser sondern mit dem Acrobatreader. Und dann wäre noch die Frage ob der Drucker das Papierformat unterstützt mit dem die PDF erstellt wurde.

            Dann mach mir das mal vor, dass der Reader ein Etikett druckt und das Papier nicht auswirft.

            Oder mache mir vor, dass ein Papierschnippel von 2/12 Zoll (das war früher ein Adress-Aufkleber) vom Drucker ordentlich behandelt wird.

            Naja, beim Drucken kann ich benutzerdefinierte Größen verwalten. Ob das klappt, weiss ich nicht. Gibt es Adressaufkleber einzeln?

            1. Ja, es gibt Drucker die können mit einem speziellen Papierfach für Adressetiketten nachgerüstet werden (Zweckform). Genauso wie es Drucker für Endlospapier gibt.

              Und den Reader nimm deswegen weil ein Browser bzw. den sein PDF Pluguin die PDF u.U. so verzerrt, daß die Maße nicht mehr stimmen.

              Ich würde jedoch trotzdem ein A4 Erstellen und die Anschrift dahin platzieren wo Umschläge das Fenster haben. MFG

              1. Und den Reader nimm deswegen weil ein Browser bzw. den sein PDF Pluguin die PDF u.U. so verzerrt, daß die Maße nicht mehr stimmen.

                Mein Firefox ist ausreichend korrekt. Wenn ich vorgebe, wie hoch eine Seite sein soll in Verbindung mit den unabhängig davon auf Null eingestellten Rändern, muss ich vielleicht mal 2, 3 mm korrigieren.

                Ich drucke ganze Liederhefte beidseitig, habe auf jeder Seite unten einen Footer und keine Seite "zerreist" das Layout.

                Hat mich Jahre gekostet, aber die Ansage, dass das unmöglich sei, lasse ich nicht gelten.

                1. Hallo

                  Und den Reader nimm deswegen weil ein Browser bzw. den sein PDF Pluguin die PDF u.U. so verzerrt, daß die Maße nicht mehr stimmen.

                  Mein Firefox ist ausreichend korrekt.

                  Das Zauberwort an dieser Stelle heißt „mein“.

                  Wenn ich vorgebe, wie hoch eine Seite sein soll in Verbindung mit den unabhängig davon auf Null eingestellten Rändern, muss ich vielleicht mal 2, 3 mm korrigieren.

                  Und das möchtest du jedesmal jedem deiner Besucher/Benutzer/Kunden abverlangen?

                  Ich drucke ganze Liederhefte beidseitig, habe auf jeder Seite unten einen Footer und keine Seite "zerreist" das Layout.

                  Hat mich Jahre gekostet, aber die Ansage, dass das unmöglich sei, lasse ich nicht gelten.

                  Wenn du das für dich so machst und diese nicht unerhebliche Zeit investierst, um dir wiederkehrende Arbeiten zu vereinfachen, ist das deine Sache. Da das aber, nach deinen eigenen Worten, beim Ausdruckenden Konfigurationsarbeiten erfordert, ist das meiner Meinung nach definitiv keine gangbare Lösung für einmalige Ausdrucke.

                  Das zumal dann, wenn der Ausdruckende für den nächsten Druck mit großer Wahrscheinlichkeit andere Einstellungen benötigen wird. Da das mit ebenso großer Wahrscheinlichkeit nicht gleich danach passieren wird, wird er wie das Schwein vor'm uhrwerk sitzen und nicht wissen, was er wo einstellen muss, geschweige denn, welche Einstellung er irgendwann einmal wo und wie verbogen hat.

                  Tschö, Auge

                  --
                  Ein echtes Alchimistenlabor musste voll mit Glasgefäßen sein, die so aussahen, als wären sie beim öffentlichen Schluckaufwettbewerb der Glasbläsergilde entstanden.
                  Hohle Köpfe von Terry Pratchett
                  1. Hallo Auge,

                    ich bin sehr interessiert (ernst gemeint!).

                    Wie geht es besser und benutzerfreundlicher, wenn die Aufgabe darin besteht, auf dem Papier eine vorgegebene Position zu treffen?

                    Rolf

                    --
                    sumpsi - posui - clusi
                    1. Hallo

                      ich bin sehr interessiert (ernst gemeint!).

                      Wie geht es besser und benutzerfreundlicher, wenn die Aufgabe darin besteht, auf dem Papier eine vorgegebene Position zu treffen?

                      Das kann ich dir nicht beantworten, weil ich selbst diese spezielle Aufgabenstellung noch nicht zu lösen hatte. Die Druckereinstellungen des Browsers (Ränder, Hintergrund drucken/nicht drucken, Metainformationen in den Ecken anzeigen/nicht anzeigen) speziell dafür (jedesmal?) ändern zu müssen, ist meiner Meinung nach keine Lösung.

                      Wenn man das bei sich einmal einstellt, weil man selbst das immer so benutzt, ist das kein Problem. Aber wenn das immer wieder verstellt werden muss oder gar andere Benutzer das bei sich immer wieder verstellen müssen, ist das mMn ein no go.

                      Tschö, Auge

                      --
                      Ein echtes Alchimistenlabor musste voll mit Glasgefäßen sein, die so aussahen, als wären sie beim öffentlichen Schluckaufwettbewerb der Glasbläsergilde entstanden.
                      Hohle Köpfe von Terry Pratchett
                      1. Hallo Auge,

                        es ist ein rough go, sicher, aber wenn ich von A nach B will und der einzige bekannte Weg eine Holperstrecke ist, was soll man dann machen?

                        Googeln natürlich 😂

                        Was demnach zu gehen scheint, ist die @page Direktive im CSS. Es wird angeblich nicht gut unterstützt, aber Chrome scheint zu funktionieren und Firefox mutmaßlich auch.

                        In Chrome bekomme ich eine Druckvorschau und die Margins werden auch exakt beachtet. Mit dem Nachteil, dass ein Unterschreiten der vom Drucker vorgegebenen Mindestränder dazu führt, dass dieser Teil fehlt. Ich muss dann über das Systemdialogfeld drucken und randlosen Druck aktivieren; das scheint via @page nicht zu gehen. Da die Mindestränder bei den Druckern, die ich bisher besaß, nie über 5mm gingen, wäre man also mit dem Folgenden ganz gut bedient:

                        @media print {
                           @page {
                              margin: 5mm;
                           }
                        }
                        

                        In Firefox gibt es keine Druckvorschau, aber es scheint zu funktionieren.

                        Safari kennt @page nicht, sagen MDN und caniuse.com

                        Es wird aber wohl sogar im IE8 unterstützt.

                        Rolf

                        --
                        sumpsi - posui - clusi
                        1. Lieber Rolf,

                          In Firefox gibt es keine Druckvorschau,

                          wiebitte?? Seit Anbeginn im FF mit dabei: Die Druckvorschau. Weil FF auf diese völlig bekloppte Idee kam, das Datei-Menü zu verstecken, ist dieser Punkt nun nicht mehr "wie üblich" erreichbar, aber wenn Du die [Alt]-Taste benutzt, und dann das Datei-Menü wie bei anständiger Software öffnest, steht da über "Drucken" auch die "Druckvorschau". Natürlich kannst Du Dir die Menüleiste mit dem Datei-Menü auch standardmäßig anzeigen lassen, dann findest Du's wieder schneller.

                          Liebe Grüße

                          Felix Riesterer

                          1. Hallo Felix,

                            ja, grundsätzlich gibt's die schon, aber sie ist nicht zu Ende gedacht.

                            Ich habe mit JSFiddle experimentiert. D.h. ich musste den Output-Frame drucken.

                            Die "große" Druckfunktion kennt keine Einschränkung auf einen Frame. Sowas konnte früher der IE mal, hab's im Fuchs nicht gefunden. Und ob er es heute noch kann, probiert sich so einfach nicht mehr aus, seit jsFiddle und codepen den IE ablehnen.

                            Das Kontextmenü im Frame liefert keine Druckvorschau. Wenn ich den Druck mit einem Button (window.print()) auslöse, gibt's auch keine Druckvorschau.

                            Rolf

                            --
                            sumpsi - posui - clusi
                            1. Hallo Rolf B,

                              Das Kontextmenü im Frame liefert keine Druckvorschau.

                              Bis demnächst
                              Matthias

                              --
                              Pantoffeltierchen haben keine Hobbys.
                              ¯\_(ツ)_/¯
                        2. Hallo Rolf,

                          In Firefox gibt es keine Druckvorschau, …

                          schon mal (unter Windows) Alt D ausprobiert?

                          Gruß
                          Jürgen

                        3. aber wenn ich von A nach B will und der einzige bekannte Weg eine Holperstrecke ist, was soll man dann machen?

                          Googeln natürlich 😂

                          Also beim Navigieren mit Google Maps empfehle ich dann, zeitweise die Navigationsempfehlungen zu ignorieren und also nicht auf den von der Ulla gewiesenen Feldweg einzufahren, sondern den sich am Wegrand materialisierenden Wegweisern zu folgen.

                          Zwischen Saint-Jean-de-Luz und Andoain (Golf von Biarritz) würde ich der Ulla sogar mitteilen, dass die ruhig auch mal Mautstraßen berücksichtigen soll. Sonst wird es mühselig.

                        4. In Firefox gibt es keine Druckvorschau

                          Ich habe eine: Datei - Druckvorschau oder kurz [Alt][D] [V]

                    2. Hallo Rolf,

                      ich bin sehr interessiert (ernst gemeint!) ... wenn die Aufgabe darin besteht, auf dem Papier eine vorgegebene Position zu treffen?

                      Definiere das zu druckende Format in Breite mm und Höhe mm. Setze einen Border, damit du sehen kannst, dass es die Seite möglichst optimal ausfüllt, aber nicht überschreitet. Korrigiere bei Bedarf die mm-Angaben unter Berücksichtigung eines 5mm Randes rundum.

                      Die Druckvorschau des Firefox [Alt][D] [V] leistet gute Dienste.

                      @media print {
                        div.a4 {  /* A4 hoch */
                          position: relative;
                          width: 200mm;
                          max-width: 100%;
                          height: 290mm;
                          border: 1px solid #fff; /* Rand scheint notwendg zum Aufspannen */
                          page-break-after: always;
                        }
                        div.a4:last-child {
                          page-break-after: avoid;
                        }
                      ...
                      }
                      

                      Achtung: Hoch- oder Breitformat kannst du per CSS nicht umstellen, das mache in der Druckvorschau vom FF. Achte auch darauf, dass dort die Skalierung immer gleichartig (z.B. 100%) eingestellt ist.

                      Dann setze diesen Container position:relative;, darin kannst du jede Position absolut in mm erreichen. Messe die Position mit einem Lineal auf einem Papier aus, berücksichtige die 5mm-Ränder und du triffst recht genau. Notfalls die mm etwas nachjustieren.

                      Und dann ein genauer Drucker.

                      Nach Seitenvorschub wird ein oberer margin ignoriert, deshalb setze oben einen padding-top.

                      Ich könnte wohl ein Büchlein darüber schreiben, wie ich dieselben HTML-Seiten als "Textbausteine" mal auf A4 (Vor- und Rückseite), aber auch auf A5 und A6 ausgebe. Bei A5 bekomme ich vier Seiten, bei A6 acht Seiten auf ein Blatt Papier mit einem Duplex-Drucker.

                      Was ist deine Anwendung? Gerne gebe ich weitere Tipps.

                      Linuchs

                      EDIT: Die druckbaren Ränder auf Null setzen unter URL about:config dann Suchbegriff margin

                      1. Hallo Linuchs,

                        das ist das Verfahren, das Auge so kritisiert hatte, und weshalb ich Auge nach seiner perfekten Idee gefragt hatte.

                        Seitenränder auf 0 setzen sollte mit der @page Direktive bei den heutigen Browsern übrigens nicht mehr nötig sein. Dein Buch (bzw. die virtuelle Version davon in deinem Kopf) ist vermutlich früher entstanden.

                        Rolf

                        --
                        sumpsi - posui - clusi
                  2. Das Zauberwort an dieser Stelle heißt „mein“.

                    Genau. Wenn ich z.B. Liederbücher für meine Projekte ausdrucke, ist das in meiner Umgebung. Wenn ich die per Mail anderen zusende oder zugänglich mache, erstelle ich eine PDF Datei mit "meinem" Firefox.

                    Und das möchtest du jedesmal jedem deiner Besucher/Benutzer/Kunden abverlangen?

                    Auf dem druckenden Kunden-Arbeitsplatz ist der Firefox vorgeschrieben mit Rändern auf Null. Die Ränder setze ich selbst. Bei Vorderseiten (Heftrand links) anders als bei Rückseiten (Löcher rechts), das pellt selbst der Firefox nicht. Alle nicht-druckenden Arbeitsplätze können vollkommen ungehemmt Daten eingeben und sich die Auswertungen ansehen.

                    Also nur ein Arbeitsplatz, ein konfigurierter Browser.

                    Wer fremde Seiten mit Browser druckt, wird immer irgendwelche Überraschungen erleben.

                    Linuchs

                    1. Hallo

                      Das Zauberwort an dieser Stelle heißt „mein“.

                      Genau. Wenn ich z.B. Liederbücher für meine Projekte ausdrucke, ist das in meiner Umgebung. Wenn ich die per Mail anderen zusende oder zugänglich mache, erstelle ich eine PDF Datei mit "meinem" Firefox.

                      Ah, da ist es wieder, das PDF. 😉

                      Also nur ein Arbeitsplatz, ein konfigurierter Browser.

                      Wer fremde Seiten mit Browser druckt, wird immer irgendwelche Überraschungen erleben.

                      Darauf wollte ich hinaus. Solange es um deine Arbeitsumgebung geht oder um eine, die unter diener Kontrolle steht, ist das überhaupt kein Problem. Lasse ich „Fremde“ etwas ausdrucken, reicht die Kontrolle für solche Spezialfälle nicht aus. Da ist dann doch der Umweg über PDF der wohl gangbarste Weg.

                      Tschö, Auge

                      --
                      Ein echtes Alchimistenlabor musste voll mit Glasgefäßen sein, die so aussahen, als wären sie beim öffentlichen Schluckaufwettbewerb der Glasbläsergilde entstanden.
                      Hohle Köpfe von Terry Pratchett