Archiv von discourse.mafiasi.de vom Saturday September 21, 2019.

Alle Dateien des ordners auf einmal ausdrucken

ttm02

Moin! Gibt es eine einfache Möglichkeit alle pdf in einem ordner auf einmal am ikum ausdrucken zu lassen (vom poolrechner aus)

EDIT: Mein favorit:

11steenfa

for f in *.pdf; lpr -Pd116_sw $f

5koehn

Niklas Antwort funktioniert nicht, wenn Leerzeichen in den Dateinamen enthalten sind. Besser:

find . -name '*.pdf' - exec lpr ... '{}'  ';'

Wobei die klammern jeweils durch den Dateinamen ersetzt werden.

/edit: Autokorrektur korrigiert.

Konfusius

Soweit ich mich erinnere hat es bei mir auch immer ein einfaches

lpr -Pd116_sw *.pdf

getan.

ttm02

Das werd ich morgen mal ausprobieren...

Niklas Lösung hat dazu geführt, dass es eine Fehlermeldung gab der Ordner in dem ich bin, würde nicht existieren ( grey_question ) Es wurde dann aber trotzdem gedruckt.

12bienkow

Meine Lieblings-Lösung kombiniert zuerst alle Dateien in ein großes PDF, dafür habe ich eh mal ein kleines Script geschrieben (benutzt nur ghostscript):

#!/bin/bash
out=$1
shift
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=$out $@

Schmeiß' dies als joinpdf oder ähnlich irgendwo in deinen $PATH (ich habe z.B. ~/.bin angelegt und in den PATH eingetragen), und joine dann deine PDFs so:

joinpdf out.pdf *.pdf
cat out.pdf | ssh fbi lpr -Pe120_hp

Vorteil: ein Druckauftrag, ein Kommando, und du kannst joinpdf sowieso öfters gebrauchen (z.B. Hausaufgaben von verschiedenen Menschen zusammenfassen)...

ttm02

Timons lösung brachte das, was ich wollte. (obwohl die Datei mit der Endung ".PDF" anstelle von ".pdf" nicht ausgedrukt wurde...)

Es wurde ein Druckjob gestartet; als 1 Job abgerechnet und auch nicht auf die Beiden Drucker in d-116 verteilt.

@12bienkow Ja es geht darum die ganzen abgaben auszudrucken, aber diese sollen nicht als eine Datei Zusammengelegt werden, da es dann blöde effekte beim duplex-Druck geben kann (abgaben von zwei leuten landen dann vielleicht auf einer Seite).

Konfusius

Sehr schön, ich war mir nicht mehr 100%ig sicher nachdem ich die ganzen komplizierten Scriptlösungen gesehen habe smile

Die Art der Abrechnung ist an sich auch exakt das was man haben möchte, da es Deckblätter spart und man seinen Ausdruck nicht aus mehreren Druckern zusammen sammeln muss.

lpr ist im allgemeinen mächtiger als man glaubt. Schön finde ich die Möglichkeit von STDIN zu drucken, da man so vom eigenen Rechner aus folgendes tun kann wenn man sein ssh entsprechend konfiguriert hat:

cat dokument.pdf | ssh 7giese@fbi lpr -Pd116_sw

Dann brauchst du keinen Poolrechner mehr benutzen.

Alles was wir über das Drucken wissen wird übrigens auf diese Wikiseite gesammelt.

11steenfa

Hm, stimmt. Dafür ist in deiner Lösung ein Leerzeichen zu viel, weswegen sie überhaupt nicht funktioniert. yum

Das ist beeindruckend, da *.pdf ja keine valide PDF-Datei ist. Aber cool, dass lpr da so unkompliziert ist, das ist natürlich die beste Lösung.

Wurde alles gedruckt? Hast du Leerzeichen in den Dateinamen?

Verwende künftig einfach nur kleingeschriebene Endungen. Vorausgesetzt, dass deine Dateinamen keine Klammern oder Anführungszeichen enthalten, kannst du mal folgenden Befehl versuchen (für alle Dateien im aktuellen Verzeichnis und Unterverzeichnissen):

find . -name '.' -exec sh -c 'a=$(echo {} | sed -r "s/([^.]*)\$/\L\1/"); [ "$a" != "{}" ] && mv "{}" "$a" ' \;

Nils

So weit ich weiß expandiert deine shell das schon zu einzelnen Dateinamen (sh kann das glaube ich nicht, fast alles andere so weit ich weiß schon)

5koehn

Die shell expandiert *.pdf natürlich. Deshalb ist es nicht sehr verwunderlich (lpr -Pd116_sw foo.pdf bar.pdf ist ja auch nicht besonders cool). Meine Lösung mit find benötige ich für xournal, das möchte nämlich nur eine Datei zur Zeit.

ttm02

Ja, Ja.

Exakt, vor allem kann dann kein 80-Seitiges Vorlesungsskript zwischen die Dateien kommen...