Drachenmann: FireFox: Druckereinstellungen ändern

Hallo.

Ich habe ein kleines Problem. In einer datenbank-gestützten Expertensoftware sollen Berichte und Rechnungen gedruckt werden.
Verwendete Umgebung: Apache, MySQL, PHP, FireFox 3.

Ich habe die Druckerausgaben zunächst in HTML in einem neuen Browser-Fenster im Hintergrund erzeugt, schicke sie dann (auf Wunsch des Anwenders auch automatisch) auf den Standarddrucker und schliesse das Fenster automatisch wieder nach dem Druck. Klappt gut, dank Javascript.

Dazu muss ich bisher allerdings im Browser die Druckeinstellungen manuell vornehmen, damit nur der gewünschte Inhalt, z.B. eine Rechnung, gedruckt wird, und nicht die üblichen Kopf- und Fusszeilen mit URL, Datum, Seitenzahl etc.

Wenn jedoch ein neuer Rechner in das bestehende Netzwerk eingebunden werden soll oder ein Benutzer einen neuen Account auf einem der Rechner eingerichtet bekommt, werden im Browser diese Einstellungen immer auf die Standardwerte gesetzt, damit sind diese lästigen Kopf- und Fusszeilen wieder da.

Besteht eine Möglichkeit, per HTML, CSS, JavaScript oder XUL (es gab da mal einen interessanten Artikel in der c't) diese Druckereinstellungen zu manipulieren?

Mir ist bewusst, daß man die Ausdrucke auch als PDF-Dateien erzeugen kann, aber ich habe noch nicht herausgefunden, wie man dann ohne wirklich übles cm- und Pixelzählen klarkommt. PHP unterstützt ja eigentlich das PDF-Format sehr gut. Bei PDF muss man aber jedes Element selbst auf der Seite positionieren, was bei dynamischen Inhalten sehr aufwändig ist. Bei HTML nimmt einem diese Arbeit der Browser ab. Finde ich persönlich einfacher ;-)

Vielen Dank - Willi

  1. Lieber Drachenmann,

    Besteht eine Möglichkeit, per HTML, CSS, JavaScript oder XUL (es gab da mal einen interessanten Artikel in der c't) diese Druckereinstellungen zu manipulieren?

    nein.

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
  2. Hallo Willi,

    Dazu muss ich bisher allerdings im Browser die Druckeinstellungen manuell vornehmen, damit nur der gewünschte Inhalt, z.B. eine Rechnung, gedruckt wird, und nicht die üblichen Kopf- und Fusszeilen mit URL, Datum, Seitenzahl etc.

    Wenn jedoch ein neuer Rechner in das bestehende Netzwerk eingebunden werden soll oder ein Benutzer einen neuen Account auf einem der Rechner eingerichtet bekommt, werden im Browser diese Einstellungen immer auf die Standardwerte gesetzt, damit sind diese lästigen Kopf- und Fusszeilen wieder da.

    Besteht eine Möglichkeit [...] diese Druckereinstellungen zu manipulieren?

    es müsste gehen :-) Allerdings hatte ich keine Zeit für Tests :-(

    Ich gehe davon aus, dass es ausreicht, die entsprechenden Änderungen in der Datei

    path/to/firefox/greprefs/all.js

    vorzunehmen. Dich sollten die Einstellungen

    pref("print.<property>", wert);

    interessieren. Am besten direkt nach der Installation von OS und Firefox vornehmen, bevor sich irgendein zweiter Benutzer am Rechner angemeldet hat :-)

    Die Wahl der Skriptsprache bleibt Dir überlassen, jedoch benötigt Dein Skript Schreibzugriff auf die von mir genannte Datei.

    Wie bereits erwähnt, ist dieser Vorschlag ungetestet. Interessant wäre noch das Verhalten beim Browserupdate.

    Freundliche Grüße

    Vinzenz

    1. Hallo Ingrid,

      Dazu muss ich bisher allerdings im Browser die Druckeinstellungen manuell vornehmen, damit nur der gewünschte Inhalt, z.B. eine Rechnung, gedruckt wird, und nicht die üblichen Kopf- und Fusszeilen mit URL, Datum, Seitenzahl etc.

      Wenn jedoch ein neuer Rechner in das bestehende Netzwerk eingebunden werden soll oder ein Benutzer einen neuen Account auf einem der Rechner eingerichtet bekommt, werden im Browser diese Einstellungen immer auf die Standardwerte gesetzt, damit sind diese lästigen Kopf- und Fusszeilen wieder da.

      Besteht eine Möglichkeit [...] diese Druckereinstellungen zu manipulieren?
      es müsste gehen :-) Allerdings hatte ich keine Zeit für Tests :-(

      es geht. Etwas anders als auf die Schnelle vermutet, aber es geht!

      Aus der Datei

      path/to/firefox/greprefs/all.js

      kopierst Du die Anweisungen, die die Seiteneinrichtung beeinflussen - und das sind im Wesentlichen Anweisungen der Form

      pref("print.<property>", wert);

      in die Datei

      path/to/firefox/defaults/profile/user.js

      und stellst die Werte ein, die als Voreinstellung gelten sollen. Dies machst Du direkt nach der Firefox-Installation. Bei der Installation eines neuen Rechners kopierst Du diese Datei gleich an diesen Pfad. Jeder Benutzer, der sich anschließend neu an diesem Rechner anmeldet und ein lokales Profil besitzt, bekommt eine Kopie dieser user.js mit den dortigen Einstellungen.

      Nachteil: Bei Änderungen an der user.js sind alle Profile zu aktualisieren.
      Unter Windows XP Professional getestet. Funktioniert bestens.

      Freundliche Grüße

      Vinzenz