Benni11
Anmeldungsdatum: 14. April 2009
Beiträge: 192
Wohnort: wo andere Urlaub machen - Bayerisches Oberland
|
Hallo HaCeMei und coram sowie die anderen Experten, vorab auch von mir vielen Dank, euere Erweiterung des Kontextmenüs funktioniert toll, soweit ich damit Office-Dokumente (*.odt, *.docs) ausdrucken will. Aber bei reinen Text-Dateien oder PDF-Dateien mag es einfach nicht klappen, obwohl ich das Profil
[X-Action-Profile Text_PDF]
MimeTypes=text/plain;application/pdf;
Exec=lp %f
Name=PDF- u. Textdruck
mit copy & paste 1:1 "abgekupfert" habe.
In einem weiteren Versuch habe ich die Datei sendto_printer.desktop verwendet (aasche hat den Vorschlag aus diesem Thread ruckzuck ins
wiki.ubuntuusers.de/PCMan File Manager/Benutzerdefinierte Aktionen übernommen), mit dieser Lösung klappts aber auch nicht. Läuft es nur bei mir falsch oder sind für den Ausdruck von Text- oder PDF-Dateien noch Anpassungen erforderlich?
Gruß Benni11
|
coram
Anmeldungsdatum: 17. Januar 2015
Beiträge: 645
Wohnort: Freiburg
|
@Benni11: Kannst Du denn per lp-Befehl Text- oder PDF-Dateien direkt von der Kommandozeile ausdrucken? Und falls nicht, werden Fehlermeldungen ausgegeben? Klappt es evtl. mit "lpr" statt "lp"? Eventuell können auch die Log-Dateien /var/log/cups/access_log und /var/log/cups/error_log weiteren Aufschluss geben. @Alle: Der Kreis der ausdruckbaren Dateien lässt sich übrigens erweitern, wenn man in Zeile 18 der .desktop-Datei per * den Mime-Typ verallgemeinert: MimeTypes=text/*;application/pdf; So ist die benutzerdefinierte Aktion, um nur zwei Beispiele zu nennen, zusätzlich auch auf HTML-Dateien (Mime-Typ "text/html") oder Python-Skripte ("text/x-python") anwendbar.
|
HaCeMei
Anmeldungsdatum: 2. August 2010
Beiträge: 2262
|
coram schrieb:
MimeT+üypes=text/*;application/pdf; So ist die benutzerdefinierte Aktion, um nur zwei Beispiele zu nennen, zusätzlich auch auf HTML-Dateien (Mime-Typ "text/html") oder Python-Skripte ("text/x-python") anwendbar.
Z.B. bei text/rtf, text/html, text/x-tex möchte ich den Quelltext eigentlich nicht ausdrucken, sondern die Layout-Ansicht. Aber interssant, was sich über die Mime-Types machen lässt.
|
Benni11
Anmeldungsdatum: 14. April 2009
Beiträge: 192
Wohnort: wo andere Urlaub machen - Bayerisches Oberland
|
Hallo coram, Volltreffer, dein Hinweis auf lp(r) hats gebracht - mein Drucker war nicht aktiviert, sodass der Befehl "lp" ins Leere ging.
Ärgerlich für mich, dass bei diesem läppischen Punkt das EDV-Problem ausgerechnet vor m e i n e m Rechner sitzt! 😬
Dir und den anderen am Thema beteiligten Könnern nochmals vielen Dank für diese Erweiterung des Kontextmenüs.
Gruß Benni11
|
umbhaki
Supporter
Anmeldungsdatum: 30. Mai 2010
Beiträge: 2522
Wohnort: Düren/Rhld
|
HaCeMei schrieb: Wo und unter welchem Namen ist denn soffice installiert bzw. verlinkt?
Hi HaCeMei, ist dein Ehrgeiz angestachelt?
soffice steht in /opt/libreoffice5.1/program/soffice. Einen Link von woanders darauf sehe ich nirgends. Edit: Doch, selbstverständlich: Jetzt habe ich ganz versehentlich noch mal nachgedacht und nachgeguckt: Der Link auf die soffice ist /usr/bin/libreoffice5.1.
|
coram
Anmeldungsdatum: 17. Januar 2015
Beiträge: 645
Wohnort: Freiburg
|
olaf123 schrieb: wie kann man das Script so verändern, dass es das Dokument nicht 1x, sondern z.B. 5x druckt?
Und wie bekäme man das im Kontextmenü in einen Unterpunkt? Denn dann würde ich mir folgendes frickeln, indem ich euer Script 10x abspeichere (mit der entsprechenden Anzahl der Drucke): → Kontextmenü
–> Datei drucken
–→ Datei 1x drucken
–→ Datei 2x drucken
–→ ...
–→ Datei 10x drucken Dann könnte ich in Ordnern, aus denen ich mehrere Dokumente drucken muss, diese einfach in pcmanfm markieren und auf den entsprechenden Unterpunkt gehen.
Der simultane Druck mehrerer Dateien funktioniert mit obiger .desktop-Datei – jedenfalls bei mir – leider nur bei Dateien vom gleichen Mime-Typ. Schon, wenn man die Benutzerdefinierte Aktion gleichzeitig auf eine txt-Datei und eine PDF-Datei anwenden will, fehlt die Druckoption im Kontextmenü. Deshalb möchte ich hier noch eine weitere Lösung vorstellen. Die gewünschte Anzahl der Drucke je Dokument wird hierbei über eine grafische Abfrage eingestellt, die das Programm YAD voraussetzt:
sudo apt-get install yad
Die .desktop-Datei
1
2
3
4
5
6
7
8
9
10
11
12 | [Desktop Entry]
Type=Action
Name=Print Document
Name[de]=Dokument(e) drucken
Icon=printer
Profiles=print;
[X-Action-Profile print]
MimeTypes=all/allfiles;
Exec=/home/martin/bin/print.sh %F
Name=benutzerdefinierte Aktion für den Druck von Text-, PDF- und Office-Dateien
|
wird unter dem Namen multiprint.desktop im Ordner ~/.local/share/file-manager/actions gespeichert. Der Druck wird über ein Shellskript print.sh geregelt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 | #!/bin/bash
# Skript zum Aufruf durch ~/.local/share/file-manager/actions/multiprint.desktop
# Grafischer Dialog zur Auswahl der Kopienanzahl je Dokument (mit YAD)
declare -i anzahl=$(yad --width=400 --title="" --center --text=" Bitte Anzahl der Kopien auswählen:" --separator="" --image=dialog-question --form --field=":CBE" "1!2!3!4!5!6!7!8!9!10")
# Druck aller Dokumente in der gewählten Anzahl
for datei in "$@"; do
mimetype=$(xdg-mime query filetype "$datei")
if ([[ $mimetype == "application/vnd.openxmlformats-officedocument.wordprocessingml.document" ]] || [[ $mimetype == "application/msword" ]] || [[ $mimetype == "application/vnd.oasis.opendocument.text" ]]); then
for ((i = 1; i <= $anzahl; i++)); do
libreoffice --headless -p "$datei" # Druck der LibreOffice- und Word-Dokumente
done
else
lp -n $anzahl "$datei" # Druck der sonstigen Dokumente
fi
done
|
das am besten im Ordner ~/bin gespeichert und dann ausführbar gemacht wird:
chmod +x ~/bin/print.sh
Einge Anmerkungen:
Leider wird bei dieser Lösung die Druck-Option im Kontextmenü auch bei nicht druckbaren Dateitypen angezeigt. Die Zahl der gewünschten Druckkopien kann im graphischen Dialogfenster wahlweise eingetippt oder über ein Pulldown-Menü ausgewählt werden. Alle ausgewählten Dokumente werden in der gleichen Anzahl ausgedruckt. Leerzeichen in Dateinamen bereiten keine Probleme.
|
HaCeMei
Anmeldungsdatum: 2. August 2010
Beiträge: 2262
|
umbhaki schrieb:
Der Link auf die soffice ist /usr/bin/libreoffice5.1
Wenn bei der Installationen alte Versionen entfernt werden, müsste also in der Desktopdatei funktonieren Exec=bash -c '"$(find /usr/bin/ -name libreoff*)" --headless -p %f'
|
HaCeMei
Anmeldungsdatum: 2. August 2010
Beiträge: 2262
|
coram schrieb:
Weil die Abfrage des Mimetypes erst im Skript erfolgt. Du könntest das wieder je nach Mimetypes zwei unterschiedliche Aktionen per Desktop-Starter definieren. Dann wäre es möglich, wenn auch nicht unbedingt nötig, unterschiedliche Yad-Skripte zum Drucken verwenden.
|
umbhaki
Supporter
Anmeldungsdatum: 30. Mai 2010
Beiträge: 2522
Wohnort: Düren/Rhld
|
HaCeMei schrieb: Wenn bei der Installationen alte Versionen entfernt werden, müsste also in der Desktopdatei funktionieren Exec=bash -c '"$(find /usr/bin/ -name libreoff*)" --headless -p %f'
Die alte Version entfernt man in der Tat, bevor man die neue installiert, und deine neue Exec-Zeile funktioniert hier wie geschmiert. Danke, HaCeMei! Äh, vielleicht nochmal im Zusammenhang für eilige Mitleser, die jetzt von den Varianten verwirrt werden: die Sache noch mal am Stück: Wenn man LibreOffice nicht aus dem Ubuntu-Repository installiert hat, sondern die „Originalversion“ von der Homepage der Document Foundation bevorzugt, dann sieht die komplette .desktop-Datei zum Druck per Rechtsklick aus dem PCManFM so aus:
## ~/.local/share/file-manager/actions/direktdrucken.desktop (Druck per Kontextmenü in pcmanfm)
[Desktop Entry]
Type=Action
Name=Print Document
Name[de]=Dokument drucken
Icon=printer
Profiles=Office;Text_PDF;
[X-Action-Profile Office]
MimeTypes=application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/msword;application/vnd.oasis.opendocument.text;
Exec=bash -c '"$(find /usr/bin/ -name libreoff*)" --headless -p %f'
Name=Officedateien drucken
[X-Action-Profile Text_PDF]
MimeTypes=text/plain;application/pdf;
Exec=lp %f
Name=PDF- u. Textdruck Für die LibO-Nutzer aus dem Repo gilt die Version, die HaCeMei am 28. Juni 2016 22:15 schrieb.
|
HaCeMei
Anmeldungsdatum: 2. August 2010
Beiträge: 2262
|
coram schrieb:
Deshalb möchte ich hier noch eine weitere Lösung vorstellen. Die gewünschte Anzahl der Drucke je Dokument wird hierbei über eine grafische Abfrage eingestellt, die das Programm YAD voraussetzt:
Das habe ich installiert und getestet, funktioniert genau, wie du beschrieben hast 👍 Trotzdem stelle ich hier eine von deinem Skript abgeleitete Alternative mit zwei verschiedenen X-Actions je nach Mimetype vor. (Eigentlich könnte man auch dein Skript beide Male eintragen) # multiprint.desktop
[Desktop Entry]
Type=Action
Name=Print Document
Name[de]=Dokument(e) drucken
Icon=printer
Profiles=Office;Text_PDF;
[X-Action-Profile Office]
MimeTypes=application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/msword;application/vnd.oasis.opendocument.text;
Exec=/home/$USER/.bin/multiprint_office %f
Name=Officedatei grafisch mehrfach drucken
[X-Action-Profile Text_PDF]
MimeTypes=text/plain;application/pdf;
Exec=/home/$USER/.bin/multiprint_pdftxt %f
Name=PDF Textdateien grafisch mehrfach drucken Dazu die beiden Skripte 1
2
3
4
5
6
7
8
9
10
11
12
13
14 | #!/bin/bash
# Skript multiprint_office
# Grafischer Dialog zur Auswahl der Kopienanzahl je Dokument (mit YAD)
declare -i anzahl=$(yad --width=400 --title="" --center --text=" Bitte Anzahl der Kopien auswählen:" --separator="" --image=dialog-question --form --field=":CBE" "1!2!3!4!5!6!7!8!9!10")
# Druck aller Dokumente in der gewählten Anzahl
for datei in "$@"; do
for ((i = 1; i <= $anzahl; i++)); do
libreoffice --headless -p "$datei" # Druck der LibreOffice- und Word-Dokumente
done
done
|
und | #!/bin/bash
# multiprint_pdftxt
# Grafischer Dialog zur Auswahl der Kopienanzahl je Dokument (mit YAD)
declare -i anzahl=$(yad --width=400 --title="" --center --text=" Bitte Anzahl der Kopien auswählen:" --separator="" --image=dialog-question --form --field=":CBE" "1!2!3!4!5!6!7!8!9!10")
# Druck aller Dokumente in der gewählten Anzahl
for datei in "$@"; do
lp -n $anzahl "$datei" # Druck der sonstigen Dokumente
done
|
Die Bestätigung in yad muss per Mausklick erfolgen. Lässt sich das auch so einstellen, dass die Enter-Taste verwendet werden kann?
|
HaCeMei
Anmeldungsdatum: 2. August 2010
Beiträge: 2262
|
Die Diskussion hier hat mich auf eine Lösung gebracht, nach der ich schon lange gesucht hatte: PDF- aus Latex-Dateien per Rechtsklick. Steht jetzt im Wiki unter PDF aus LaTeX-Dateien. Vielen Dank für die Anregungen, besonders an coram.
|