[Text-Dateien drucken] - Jetzt: echtes A4 mit a2ps erzeugen?

Einrichten des Druckers und des Drucksystems, Scannerkonfiguration und Software zum Scannen und Faxen.
Antworten
dolphin
Beiträge: 362
Registriert: 01.05.2006 11:48:24

[Text-Dateien drucken] - Jetzt: echtes A4 mit a2ps erzeugen?

Beitrag von dolphin » 15.08.2007 09:37:36

Hallo!

Ich moechte ganz normale Text-Dateien drucken.
Seit einigen Jahren mache ich das, indem ich mit einem Webbrowser (Mozilla bzw. Iceape)
die Text-Datei oeffne, und entweder direkt zum Drucker sende oder es in ein PS drucke,
um anschließend das PS zu drucken.

Das Problem:
Aktuell habe ich 3 Etch-Systeme. Ein Etch ist Testing und die anderen Etches sind Stable
und vom Versionsstand her identisch. Alle 3 Etch-Systeme liefern aber unterschiedliche
Resultate. Das heisst: Wenn ich mit dem Browser in eine Datei drucke, sieht sie auf
allen 3 Systemen unterschiedlich aus.

Der einzige Grund, warum noch das alte Etch Testing laeuft ist der, weil ich nur mit dem
Testing akzeptabel drucken kann (die Loesung meines Druckproblems wuerde also endlich
das alte Testing vom Fruehsommer 2006 ueberfluessig machen).

Was ich moechte:
Ich moechte Text-Dateien in PS-Dateien umwandeln, wobei ich (egal auf welchem Linux-System)
immer reproduzierbare Ergebnisse haben moechte. Ich moechte nachvollziehen koennen, warum
im PS-File maximal X Zeichen in eine Zeile passen, maximal Y Zeilen auf ein Blatt passen
und warum ein Zeichen immer eine Aufloesung von Z Pixeln hat.

Scheinbar bin ich mit dieser simplen Anforderung (naemlich die Reproduzierbarkeit von
Resultaten unabhaengig vom Betriebssystem) etwas altmodisch, aber ich kann nun mal
mit Wundertueten als Betriebssystem getarnt nichts anfangen.

Um wieder etwas Kontrolle zurueckzubekommen dachte ich mir, ich drucke ab sofort
nicht mehr Text-Dateien mit dem Webbrowser, sondern wieder mit LPR (so wie
zu "SuSE 5.0"-Zeiten, als ein LPR Texte noch in A4 auf A4 gedruckt hatte).

Jetzt stehe ich vor folgenden Huerden, und Google hilft mir nicht weiter:
  • Wie kann ich kommandozeilenbasiert (z.B. mit LPR) TXT-Dateien in PS-Dateien umwandeln?
  • Wie kann ich die Anzahl Zeichen pro Zeile und die Anzahl Zeilen pro Seite beeinflussen und gleichzeitig sicher gehen, dass die daraus resultierenden Postscript-Files immer gleich aussehen, egal auf welchem Betriebssystem ich sie generiert habe?
Ich weiss noch nicht einmal, ob LPR heute ueberhaupt noch der moderne Ansatz ist, denn in Sachen Drucken hat
sich ja in den letzten Jahren auch einiges bewegt. Zumindest ist CUPS eine Erfindung aus der Neuzeit.

Wenn mich jemand mit Informationen oder gar mit den richtigen Internetseiten versorgen koennte, wuerde ich
mich sehr freuen. Im Moment fehlen mir wohl die passenden Suchbegriffe, um mit Google ueberhaupt eine
Chance zu haben.

Beste Gruesse,
dolphin
Zuletzt geändert von dolphin am 15.08.2007 12:36:28, insgesamt 1-mal geändert.

dolphin
Beiträge: 362
Registriert: 01.05.2006 11:48:24

Re: Text-Dateien drucken

Beitrag von dolphin » 15.08.2007 11:49:41

OK. Ich bin schon etwas weiter.
Ich bin jetzt auf den Befehl a2ps gestossen.

Wenn ich schreibe:

Code: Alles auswählen

a2ps -1 datei.txt -o ausgabe.ps
dann erzeugt er mir ein PS mit 1 Seite pro Seite (Default
ist 2 Seiten pro Seite). Jetzt muss ich nur noch herausfinden,
wie ich den ganzen Kram drumherum wegbekommen, wie
etwa Datum, Seite X von Y und so weiter...

dolphin

goecke
Beiträge: 289
Registriert: 12.01.2007 11:57:27

Beitrag von goecke » 15.08.2007 11:58:16

Hi,

ich nehme mal an das du CUPS installiert hast und auch das Paket "cupsys-bsd"

dann solltest du auch mit "lpr textdatei" Drucken können - gibt das denn keine
reproduzierbaren ergebnisse?

Gruß
Johannes

dolphin
Beiträge: 362
Registriert: 01.05.2006 11:48:24

Beitrag von dolphin » 15.08.2007 12:25:51

goecke hat geschrieben:Hi,

ich nehme mal an das du CUPS installiert hast und auch das Paket "cupsys-bsd"

dann solltest du auch mit "lpr textdatei" Drucken können - gibt das denn keine
reproduzierbaren ergebnisse?

Gruß
Johannes
Naja, wenn ich lpr textdatei nehmen wuerde, dann wuerde er ja den Auftrag direkt zum Drucker
schicken. Bei 3 Systemen kostet mich das zu viel Papier und bei 2 Rechnern muss ich dann auch den
Drucker staendig umstoepseln. Muss alles nicht sein.

Wenn ich ein PS hinbekommen habe und ich das zum Drucker schicke, dann weiss ich
ziemlich genau, dass es immer gleich aussieht, egal von wo aus ich es abschicke (alles andere
wuerde mich jetzt sehr stark irritieren).

Auf Datei-Ebene die PS-Dateien zu vergleichen halte ich fuer informativer.

Gruss
dolphin

dolphin
Beiträge: 362
Registriert: 01.05.2006 11:48:24

Re: Text-Dateien drucken

Beitrag von dolphin » 15.08.2007 12:33:24

Ich bin mit a2ps etwas weiter gekommen:

Code: Alles auswählen

a2ps -1 -B -M A4dj --borders=no datei.txt -o ausgabe.ps
Damit laesst er die ueberfluessigen Header weg, rahmt das Resultat nicht
mehr ein und mit der "-M" -Option erreiche ich ein A4-Ausdruck in einem
Letter-Format.

Die "-M" -Option bereitet mir noch Sorgen: Lasse ich sie weg, erhalte ich ein
Letter-Ausdruck in einem Letter-Format. Ein A4-Ausdruck in einem
Letter-Format ist zwar schon besser, aber deutlich lieber waere mir ein
A4-Ausdruck in einem A4-Format.

Das heisst:
Wenn ich das Resultat mit einem kpdf aufmache, dann stellt er die
"Blaetter" im Letter-Format dar. Von Iceape generierte Inhalte stellt
kpdf komplett als A4 in A4 dar.

Krank ist das alles :-/

Hat jemand eine Idee, wie ich ein A4 in ein A4 hinbekomme?



dolphin

goecke
Beiträge: 289
Registriert: 12.01.2007 11:57:27

Beitrag von goecke » 15.08.2007 13:35:33

dolphin hat geschrieben:
goecke hat geschrieben:Hi,

ich nehme mal an das du CUPS installiert hast und auch das Paket "cupsys-bsd"

dann solltest du auch mit "lpr textdatei" Drucken können - gibt das denn keine
reproduzierbaren ergebnisse?

Gruß
Johannes
Naja, wenn ich lpr textdatei nehmen wuerde, dann wuerde er ja den Auftrag direkt zum Drucker
schicken. Bei 3 Systemen kostet mich das zu viel Papier und bei 2 Rechnern muss ich dann auch den
Drucker staendig umstoepseln. Muss alles nicht sein.
sorry, aber das stimmt nicht!

nicht verwechseln mit

Code: Alles auswählen

cat textdatei > /dev/lp0
lpr <irgendwas>
übergibt <irgendwas> an dein installiertes Drucksystem. je nach Konfiguration wird
z.B. ein JPEG gedreht, skaliert, beschnitten und dann via PS auf den Standard Netzwerk
Drucker in deiner Filiale in Syney ausgedruckt ;-)


Auch eine Text-Datei wird dann über CUPS gedruckt. auf dem Drucker, der für den
Cups-Client eingetragen ist - nix mit Umstöpseln - es sei denn du hat nicht alle
Rechner und den Drucker im Netzwerk.

wenn du cups richtig konfiguriert hast, wird bei "lpr textdatei" ggf. auch a2ps mit deinen
Parametern aufgerufen

=> man lpr
=> man cups-filter
=> http://www.cups.org/documentation.php/options.html (Abschnitt über Text)
=> man 5 mime.convs (Konvertierungen definieren)

Wenn ich ein PS hinbekommen habe und ich das zum Drucker schicke, dann weiss ich
ziemlich genau, dass es immer gleich aussieht, egal von wo aus ich es abschicke (alles andere
wuerde mich jetzt sehr stark irritieren).

Auf Datei-Ebene die PS-Dateien zu vergleichen halte ich fuer informativer.

Gruss
dolphin
Soweit ich mich erinnere wird unter Unix-Artigen Systemen immer über Postscript gedruckt.

HTH
Johannes

dolphin
Beiträge: 362
Registriert: 01.05.2006 11:48:24

Beitrag von dolphin » 15.08.2007 14:51:28

goecke hat geschrieben:
dolphin hat geschrieben:
goecke hat geschrieben:Hi,

ich nehme mal an das du CUPS installiert hast und auch das Paket "cupsys-bsd"

dann solltest du auch mit "lpr textdatei" Drucken können - gibt das denn keine
reproduzierbaren ergebnisse?

Gruß
Johannes
Naja, wenn ich lpr textdatei nehmen wuerde, dann wuerde er ja den Auftrag direkt zum Drucker
schicken. Bei 3 Systemen kostet mich das zu viel Papier und bei 2 Rechnern muss ich dann auch den
Drucker staendig umstoepseln. Muss alles nicht sein.
sorry, aber das stimmt nicht!

nicht verwechseln mit

Code: Alles auswählen

cat textdatei > /dev/lp0
lpr <irgendwas>
übergibt <irgendwas> an dein installiertes Drucksystem. je nach Konfiguration wird
z.B. ein JPEG gedreht, skaliert, beschnitten und dann via PS auf den Standard Netzwerk
Drucker in deiner Filiale in Syney ausgedruckt ;-)


Auch eine Text-Datei wird dann über CUPS gedruckt. auf dem Drucker, der für den
Cups-Client eingetragen ist - nix mit Umstöpseln - es sei denn du hat nicht alle
Rechner und den Drucker im Netzwerk.

wenn du cups richtig konfiguriert hast, wird bei "lpr textdatei" ggf. auch a2ps mit deinen
Parametern aufgerufen

=> man lpr
=> man cups-filter
=> http://www.cups.org/documentation.php/options.html (Abschnitt über Text)
=> man 5 mime.convs (Konvertierungen definieren)

Wenn ich ein PS hinbekommen habe und ich das zum Drucker schicke, dann weiss ich
ziemlich genau, dass es immer gleich aussieht, egal von wo aus ich es abschicke (alles andere
wuerde mich jetzt sehr stark irritieren).

Auf Datei-Ebene die PS-Dateien zu vergleichen halte ich fuer informativer.

Gruss
dolphin
Soweit ich mich erinnere wird unter Unix-Artigen Systemen immer über Postscript gedruckt.

HTH
Johannes


Hallo Johannes,

der lpr-Befehl hat in den letzten Jahren nie das gedruckt, was ich wollte. Wenn ich jetzt anfange,
eine Seite nach der anderen mit lpr zu drucken, dann irgendwo schraube, dann drucke, dann
schraube, dann drucke, bis ich endlich hab, was ich will, habe ich sicherlich 50 Blatt Papier fuer
den Muelleimer produziert. Deshalb mein Wunsch, erstmal in Dateien zu drucken, und zwar hier
in Berlin, nicht in Sydney ;-)

Wie genau kann ich denn in den CUPS-Filter eingreifen, um dort ein PS-File abzugreifen, wenn
ich den Befehl lpr textdatei verwende?

Ich kann ja, wenn ich wieder zu Hause bin, mich intensiv mit dem CUPS-Filter beschaeftigen,
aber vielleicht kennt ja einer ganz konkret den richtigen Handgriff?

Gruesse,
dolphin

goecke
Beiträge: 289
Registriert: 12.01.2007 11:57:27

Beitrag von goecke » 15.08.2007 16:47:50

dolphin hat geschrieben: Hallo Johannes,

der lpr-Befehl hat in den letzten Jahren nie das gedruckt, was ich wollte.
der LPR befehl schickt nur die datei an das Drucksystem.
d.h. du musst dein Drucksystem konfigurieren

oder in http://www.cups.org/documentation.php/options.html
schauen, ob die Text Optionen deinen wünschen gerecht werden
Text Options

CUPS supports several options that are only used when printing plain text files. These options have absolutely no effect on PostScript, PDF, HP-GL/2, or image files.
Setting the Number of Characters Per Inch

The -o cpi=value option sets the number of characters per inch:

lp -o cpi=10 filename
lp -o cpi=12 filename
lpr -o cpi=17 filename

The default characters per inch is 10.
Setting the Number of Lines Per Inch

The -o lpi=value option sets the number of lines per inch:

lp -o lpi=6 filename
lpr -o lpi=8 filename

The default lines per inch is 6.
Setting the Number of Columns

The -o columns=value option sets the number of text columns:

lp -o columns=2 filename
lpr -o columns=3 filename

The default number of columns is 1.
Setting the Page Margins

Normally the page margins are set to the hard limits of the printer. Use the -o page-left=value, -o page-right=value, -o page-top=value, and -o page-bottom=value options to adjust the page margins:

lp -o page-left=value filename
lp -o page-right=value filename
lp -o page-top=value filename
lp -o page-bottom=value filename
lpr -o page-left=value -o page-right=value -o page-top=value -o page-bottom=value filename

The value argument is the margin in points; each point is 1/72 inch or 0.35mm.

Alternativ kannst du auch ein Script schreiben

http://www.cups.org/doc-1.1/sam.html#FI ... _FILTERING
http://www.ibm.com/developerworks/linux ... ilter.html

welches bei aufruf von "lpr <text>" ebent genau Deine a2ps Konvertierung


Wenn ich jetzt anfange,
eine Seite nach der anderen mit lpr zu drucken, dann irgendwo schraube, dann drucke, dann
schraube, dann drucke, bis ich endlich hab, was ich will, habe ich sicherlich 50 Blatt Papier fuer
den Muelleimer produziert. Deshalb mein Wunsch, erstmal in Dateien zu drucken, und zwar hier
in Berlin, nicht in Sydney ;-)
ich wollte ja nur sagen, daß du mit "lpr" nicht direkt druckst sondern dein Drucksystem
(fast) alles machen könnte was du willst.
Wie genau kann ich denn in den CUPS-Filter eingreifen, um dort ein PS-File abzugreifen, wenn
ich den Befehl lpr textdatei verwende?
z.B. (laut google suche "cups filter definieren" ) in "/etc/cups/mime.conv"
texttops durch ein script ersetzen, welches sowas wie
" texttops "$*" | tee /tmp/output.ps " enthält.

Ich kann ja, wenn ich wieder zu Hause bin, mich intensiv mit dem CUPS-Filter beschaeftigen,
aber vielleicht kennt ja einer ganz konkret den richtigen Handgriff?

Gruesse,
dolphin
Gruß
Johannes

dolphin
Beiträge: 362
Registriert: 01.05.2006 11:48:24

Re: Text-Dateien drucken

Beitrag von dolphin » 16.08.2007 08:47:54

dolphin hat geschrieben:Ich bin mit a2ps etwas weiter gekommen:

Code: Alles auswählen

a2ps -1 -B -M A4dj --borders=no datei.txt -o ausgabe.ps
Damit laesst er die ueberfluessigen Header weg, rahmt das Resultat nicht
mehr ein und mit der "-M" -Option erreiche ich ein A4-Ausdruck in einem
Letter-Format.

Die "-M" -Option bereitet mir noch Sorgen: Lasse ich sie weg, erhalte ich ein
Letter-Ausdruck in einem Letter-Format. Ein A4-Ausdruck in einem
Letter-Format ist zwar schon besser, aber deutlich lieber waere mir ein
A4-Ausdruck in einem A4-Format.

Das heisst:
Wenn ich das Resultat mit einem kpdf aufmache, dann stellt er die
"Blaetter" im Letter-Format dar. Von Iceape generierte Inhalte stellt
kpdf komplett als A4 in A4 dar.

Krank ist das alles :-/

Hat jemand eine Idee, wie ich ein A4 in ein A4 hinbekomme?



dolphin
Hi!

Ich glaube, ich hab das Problem jetzt zu bester Zufriedenheit geloest.
Der letzte Puzzlestein, der mir noch fehlte war folgender:

In der /etc/papersize ist per Default letter eingetragen.
Da muss natuerlich a4 stehen.

Der Hintergrund: Manche Software, die PS-Files erstellen kann, schreibt
anscheinend das Papierformat in das PS-File mit rein. Iceape z.B. macht
das. Andere Programme, wie etwa a2ps schreiben anscheinend keine
Formatangaben in das PS-File. Das einzige, was sie machen, ist, dass sie
die Ausgabe je nach Wunsch des Benutzers formatieren, also z.B. "letter"
oder "a4".

Jetzt kommt der Viewer: Oeffnet er ein Iceape-Dokument, dann steht
da drin: A4. Aha! Muss ich also im A4-Format darstellen.

Oeffnet der Viewer ein a2ps-Dokument, dann steht da keine Angabe drin.
Er denkt sich: "Ist ja bloed, was soll ich jetzt machen? Nun, da schau ich mal
in /etc/papersize nach". Da steht "letter". Schwups, wird der A4-formatierte
Text in einem Letter-formatierten Dokument dargestellt.

Wenn ich also /etc/papersize aendere, dann bekomme ich mein A4 in A4
und bin gluecklich. Ob das jetzt alles auch auf Papier ausgedruckt vernuenftig
aussieht, teste ich am Wochenende. Ich bin aber zuversichtlich, weil ja einmal
vernuenftig formatierte PS-Dateien auf meinen Systemen mittlerweile auch
vernuenftig beim Drucker ankommen (da hatte ich vor einigen Wochen schon
mal lange gran geknobelt und mit Cups dann doch alles hinbekommen).

dolphin

Antworten