ralphi: php generierte Datei formatieren?

Hallo Leute,

wahrscheinlich ne einfache Frage. Ich find nur nix und habs noch nicht gemacht.
kann man eine mit php generierte Datei formatieren?

Folgendes:
ich baue eine Textdatei aus einer DB zusammen. Die wird dann über Cups direkt am Server ausgedruckt.
lp filename
soweit so gut.
Hab ich die Möglichkeit, die Textdatei zu formatieren (Fett, Kursiv, Großschrift etc) und vielleicht noch ein Bild einzufügen, bevor es an den Drucker geht?

Viele Grüße aus LA

--
ralphi
  1. Tach!

    Hab ich die Möglichkeit, die Textdatei zu formatieren (Fett, Kursiv, Großschrift etc) und vielleicht noch ein Bild einzufügen, bevor es an den Drucker geht?

    Plaintext kennt keinerlei derartige Formatierungsmöglichkeiten. PDF oder PostScript wäre eine Möglichkeit.

    dedlfix.

  2. Hi!

    Kommt auf das Dateiformat an. Sicher kann man Formatierungen mitgenerieren und speichern. Bei HTML z.B. per CSS.

    Eine reine Textdatei (.txt) enthaelt normalerweise keine Formatierungen.

    --
    Signaturen sind bloed.
    1. hi,

      Kommt auf das Dateiformat an. Sicher kann man Formatierungen mitgenerieren und speichern. Bei HTML z.B. per CSS.

      im prinzip kann man ja alle steuerzeichen mit echo ausgeben.
      der drucker müsste es halt kennen nicht ein browser

      Viele Grüße aus LA

      --
      ralphi
      1. Tach!

        im prinzip kann man ja alle steuerzeichen mit echo ausgeben. der drucker müsste es halt kennen

        Wenn das so ein Drucker(treiber) ist, der ASCII versteht, dann kann man da in geringem Maß etwas machen - zumindest bei Nadeldruckern hat das geklappt, weil die manchmal nicht ganz exakt positionieren konnten. Ob ein Laser- oder Tintendrucker, auch wenn er ASCII versteht, ein ähnliches Resultat zustandebekommt? Jedenfalls kann man mit Rückschritt zurückgehen und den Buchstaben nochmal drucken, dann wird er etwas dunkler. Die Zeile (oder Teile davon) nochmal drucken, aber mit einem Versatz von einem Pixel horizontal oder vertikal ergibt auch eine Hervorhebung. Unterstreichen wäre noch drin, die Steuersequenz für Kursiv könnte helfen und auch alle anderen Sequenzen, die der Drucker noch so versteht.

        dedlfix.

        1. hi,

          Jedenfalls kann man mit Rückschritt zurückgehen und den Buchstaben nochmal drucken, dann wird er etwas dunkler.

          :-) drucker aus dem Museum- hehe - cooler gedanke.

          also zum test hab ich momentan einen HP laser und bekomme, die woche, 2 termo bon-drucker zum anschließen.
          das ganze soll vor-bestellungenn direkt in der küche ausdrucken

          ich bin sicher, dass es einen standard steuersatz für fett und kursiv gibt. zum googln bin ich anscheinend heute zu doof.
          ich probier jetzt mal andere dateiformate als txt zu drucken.

          Viele Grüße aus LA

          --
          ralphi
          1. also zum test hab ich momentan einen HP laser und bekomme, die woche, 2 termo bon-drucker zum anschließen.
            das ganze soll vor-bestellungenn direkt in der küche ausdrucken

            Ah. Coole Sache.

            ich bin sicher, dass es einen standard steuersatz für fett und kursiv gibt. zum googln bin ich anscheinend heute zu doof.
            ich probier jetzt mal andere dateiformate als txt zu drucken.

            Probier mal. Ansonsten hat Klawischnigg ja ein, zwei Sachen dazu geschrieben. Normalerweise ist das halt Druckertreibersache. Wenn Du tatsaechich in diese Richtung gehen musst, bin ich schonmal raus. Auch wenn mich das Thema interessiert.

            --
            Signaturen sind bloed.
          2. ich probier jetzt mal andere dateiformate als txt zu drucken.

            also pdf kann cups, doc nicht.
            nun, pdf wäre eine möglichkei, aber - wie bekomme ich eine textdatei nach pdf unter debian kommandozeile

            Viele Grüße aus LA

            --
            ralphi
            1. ich probier jetzt mal andere dateiformate als txt zu drucken.

              also pdf kann cups, doc nicht.
              nun, pdf wäre eine möglichkei, aber - wie bekomme ich eine textdatei nach pdf unter debian kommandozeile

              Es gibt cups-pdf. evtl hilft dir das weiter? (muesstest dann 2x drucken?)

              Wie erstellst Du die Textdadei? Kannst Du so ein PDF erstellen?

              Kann Cups HTML Dokumente drucken? Basis HTML mit <b> und <i> ... ohne CSS sollte fuer dich ja reichen?

              --
              Signaturen sind bloed.
            2. Tach!

              nun, pdf wäre eine möglichkei, aber - wie bekomme ich eine textdatei nach pdf unter debian kommandozeile

              Wenn du nur Text hast, wirst du das in kein anderes "buntes" Format konvertieren können. Du musst da schon direkt einen "Bunt-Format-Erzeuger" nehmen, oder ein quasi buntes Textformat, wie HTML, in echtes "bunt" konvertieren. Mal so salopp ausgedrückt. Also ein HTML2PDF-Konverter bietet sich an.

              dedlfix.

            3. ?t=215667&m=1477422

              tex2pdf enthalten in texlive-base oder besser

              Wie ich schon darstellte kannst Du Dir (meinetwegen) eine Vorlage in Libreoffice erstellen und als tex-Datei exportieren, mit einem Text-Editor anschauen und bearbeiten - natürlich auch mit PHP, Perl, wasimmer. Das mag nach "übererfüllt" klingen - aber die Wünsche werden schnell größer.

              Mit tex2pdf machst Du dann ein PDF daraus, dass kannst Du mit cups drucken.

              Die billigere Alternative ist html2ps. Du erzeugst html und machst Postskript daraus. Das kann auch direkt gedruckt werden. Da aber  HTML nicht primär zum Drucken gedacht ist gibt es dann - bei Erweiterung der Wünsche- wieder Stellen, wo Du nicht weiterkommst.

              Jörg Reinholz

      2. Hi,

        hi,

        Kommt auf das Dateiformat an. Sicher kann man Formatierungen mitgenerieren und speichern. Bei HTML z.B. per CSS.

        im prinzip kann man ja alle steuerzeichen mit echo ausgeben.
        der drucker müsste es halt kennen nicht ein browser

        Ich kenne Cups nicht wirklich. So wie ich das bisher verstehe, waere das die Aufgabe von Cups, ausser du sendest an einen Raw-Drucker.

        Es war auch nur ein Beispiel. Du musst halt etwas generieren, dass formatierbar ist und von deinem System (interpretiert und) gedruckt werden kann. Das kann auch wie von dedlfix erwaehnt ein pdf sein, falls du sowas korrekt drucken kannst.

        --
        Signaturen sind bloed.
  3. Hi there,

    wahrscheinlich ne einfache Frage.

    Stimmt. Die Frage ist ganz einfach;)

    Hab ich die Möglichkeit, die Textdatei zu formatieren (Fett, Kursiv, Großschrift etc) und vielleicht noch ein Bild einzufügen, bevor es an den Drucker geht?

    Ja, aber nur druckerspezisch. Du müsstest für jeden Drucker quasi einen "Druckertreiber" schreiben, der die für den Drucker spezifischen Escape-Sequenzen (was anderes wirst Du in einer Textdatei nicht unterbringen) enthält.
    Als Beispiel: Du schreibst Dir in PHP eine Funktion fett($ein), die Du vor den Text setzt, den Du fett ausgeben willst. Die Funktion fett() schaut dann in Deiner Druckertreiber-DB nach, welchen Wert sie je nach aktuellem Drucker zurückgibt.
    Das Problem dürfte sein, für aktuelle Drucker diese Codes zu erhalten. Das Konzept stammt noch aus einer Zeit, wo Nadeldrucker gang und gäbe waren und wo jeder seinen eigenes und alleinseligmachendes Rezept für die diversen Formutierungen zu haben glaubte.
    Laserdrucker wurden zB mit der Bytefolge 27 40 115 52 66 in den Fettdruck geschickt, während EPSON und EPSON-kompatible Nadler mit 27 71 fett gedruckt haben. Bestimmte Schriftarten zB konnte man beim HP-Laserjet mit so tollen Strings wie "~<ESC>(12U<ESC>(s1p10.00v0s0b4148T" erreichen. Kann ja sein, daß das bei HP-Tintenspritzern noch immer funktioniert, aber, wenn Du keinen guten Grund hast, Textausgaben auf einem Server formatieren zu wollen und dabei keine Standardtreiber für eine graphische Betriebssystemoberfläche verwenden kannst, dann würd' ich die Büchse der Pandorra geschlossen lassen, auch wenn es prinzipell machbar wäre, aber wenn man da keine Erfahrung hat, ist das ein eher mühsames und wahrscheinlich nicht lohnendes Unterfangen...

  4. ich baue eine Textdatei aus einer DB zusammen. Die wird dann über Cups direkt am Server ausgedruckt.

    Schritt 1)
    Nimm meinetwegen libreoffice, erstelle ein Template, speichere es als LaTex-Datei. Bearbeite die mit einem Texteditor bis wirklich alles passt. (testen durch erzeugen von PDF...)

    Schritt 2)
    Schicke PHP los um die Daten zu ermitteln und im LaTex-Template die Platzhalter zu ersetzen.

    Schritt 3)
    Backe aus dem Template mit LaTex das PDF (oder Postskript) und jage es direkt zum Drucker.

    Ich erzeuge auf diese Weise z.B. meine Rechnungen

    Jörg Reinholz