Jak wysłać do wydrukowania (wielu) wybranych plików w katalogu zamiast jeden po drugim?

10

Używam Ubuntu 12.04 i pomyślnie zainstalowałem moją drukarkę Wi-Fi, ale moje pytanie brzmi: jak wydrukować wiele plików jednocześnie? Mam na myśli wiele plików PDF lub tekstowych w folderze i chcę wysłać je bezpośrednio do drukarki zamiast otwierać jeden po drugim w przeglądarce plików, a następnie wydrukować, a następnie powtórzyć cały proces tyle razy /:

Nawet nie widzę opcji Drukuj po kliknięciu pliku prawym przyciskiem myszy lub w menu Plik.

Dziękuję Ci!

Oscar
źródło

Odpowiedzi:

4

Utwórz plik: ~ / .local / share / applications / print.desktop Włóż:

[Desktop Entry]
Encoding=UTF-8
Name=Print Directly
Comment=Print file directly with default printer.
Exec=lp %f
Type=Application
Icon=/usr/share/pixmaps/gnome-applets.png
MimeType=text/plain;text/pdf;application/pdf;application/x-pdf

Kliknij prawym przyciskiem myszy dowolny plik pdf, w „Otwórz za pomocą ...” wyświetl rozszerzoną listę dostępnych aplikacji na pliki pdf. Znajdź pozycję „Drukuj bezpośrednio” i dodaj powiązanie. Od teraz możesz kliknąć prawym przyciskiem myszy dowolny plik pdf (lub grupy) i wydrukować je za pomocą polecenia lp na domyślnej drukarce . Jeśli chcesz eksperymentować, zainstaluj drukarkę CUPS-PDF i ustaw ją jako domyślną w ustawieniach Drukarki.

sudo apt-get install cups-pdf

Plik testowy zostanie „wydrukowany” w folderze ~ / PDF.

mitolog
źródło
4

Zrobiłem skrypt, który wysyła żądane pliki na drukarkę domyślną: Być może trzeba go zmodyfikować, aby zaznaczyć folder, że pliki są i uruchomić go raz .pdf, a następnie za .txt:
find /home/mike/KeyGuides/ -type f -iname '*.txt' -print0 | while IFS= read -r -d '' f; do lpr "$f"; done. Działa tak, jak go właśnie przetestowałem; upewnij się tylko, że żądana drukarka jest skonfigurowana jako domyślna.

Jeśli masz jakieś problemy, zobaczę, czy mogę to zmodyfikować w razie potrzeby. (Możesz użyć innych opcji dla lpr, jeśli potrzebujesz - zobacz man lpr) Powinno działać dla większości drukarek - działa z moim Canon IP4700.

Ta wersja skryptu porusza również każdy wydrukowany dokument do katalogu (które muszą zostały utworzone wcześniej), tak, że gdy skrypt jest uruchamiany tylko nowe dokumenty drukowane są:

find /home/mike/Duck/ -type f -iname '*.txt' -print0 | while IFS= read -r -d '' f;
 do lpr "$f" && mv "$f" /home/mike/Duck/printed/ ; done

źródło
Cześć: dziękuję za radę, ale co, jeśli chcę wydrukować wiele plików, ale nie wszystkie pliki w tym katalogu? To właśnie chciałbym zrobić, ponieważ kiedy zapisuję nowe pliki w tym katalogu, drukuję tylko nowe pliki. Mam nadzieję, że dobrze to wytłumaczyłem :)
Oscar
To naprawdę inne pytanie niż pierwotnie zadane, ale zobaczę, czy mogę coś zrobić ze skryptem - może być trudne wydrukowanie tych, które nie zostały jeszcze wydrukowane; chociaż możemy po prostu dodać polecenie, aby przenieść każdy dokument do określonego folderu po wydrukowaniu. Powinno być możliwe wstawienie tego do pętli while.
Pamiętaj, że lpr działa tylko na zwykłym tekście. Będziesz musiał użyć innego narzędzia, które wysyła zadanie drukowania do CUPS, jeśli dotyczy to na przykład plików PDF.
Cumulus007
Cześć, nie tak różne pytanie, dlatego w nazwie pytania umieściłem „wielu” i „wybranych”, aby mogły to być wszystkie z nich lub niektóre z nich: D OK, mam nadzieję, że znajdziesz rozwiązanie, aby to osiągnąć. Wielkie dzięki!
Oscar
1
lpr działa z plikami pdf - polecenie lpr bash_FAQ.pdf drukuje go idealnie.
0

To nie jest bezpośrednie rozwiązanie dla systemu operacyjnego Ubuntu Linux:

  • Spróbuj skorzystać z usługi Google : Google - Cloud Print . Nie jestem jednak pewien, czy istnieje opcja jednoetapowego wykonywania wielu zadań

Również bardziej złożone rozwiązanie:

Zainstaluj nautilus-actionspakiet

Uruchom menu Nautilus Actions Settingsz System> Preferencesi dodaj akcję:

Karta Działania

Przedmiot Nautilus

Etykieta kontekstowa: Drukuj

Wyświetl pozycję w menu kontekstowym wyboru

Wyświetl element w menu kontekstowym lokalizacji (niepotrzebne)

Właściwości akcji: włączone

Karta poleceń

Etykieta profilu:

Domyślne polecenie:

Ścieżka: lp

Parametry:% M (kliknij przycisk legendy, aby zobaczyć dodatkowe informacje)

Zmodyfikuj informacje o innych kartach, tak aby zachowywał się nautilus.

Zapisz akcję, uruchom ponownie nautilus.

Twoje menu kontekstowe pokaże „Drukuj” ...

Źródło: UbuntuForums

Za pomocą prostej metody:

Otwórz terminal, wpisz lpri umieść przed nim spację. Następnie przeciągnij i upuść pliki, które chcesz wydrukować na terminalu.

David M. Sousa
źródło
Cześć, dodałem akcję i polecenie w Nautilus, jak wskazano, menu pojawia się po kliknięciu pliku prawym przyciskiem myszy, ale nic się nie dzieje /: Metoda terminalu zadziałała, ale podczas drukowania plików pdf, wydrukowana strona ma inne czcionki, a nie te, które ty patrz podczas otwierania daszkiem.
Oscar
Przepraszam, ale to nie moja wiedza. Gryzłem w niektórych witrynach, aby pobrać informacje, które właśnie opublikowałem. Powinieneś sprawdzić, w sprawie Nautilusa, dokumentację lp. Może to nie jest celowanie w drukarkę.
David M. Sousa,
0

Najnowsze wersje CUPS dodały możliwość bezpośredniego drukowania plików pdf. 11.10 i nowsze (i prawdopodobnie starsze) wersje mają to.

Innym podejściem (którego używam z moim pakietem emulatora drukowania dwustronnego) jest użycie polecenia Drukuj do pliku dla wszystkich zadań drukowania i umieszczenie ich w folderze, który skutecznie staje się osobistą kolejką drukowania. Gdy już tam będą, możesz wydrukować niektóre lub wszystkie z nich, kiedy chcesz, i usunąć je, gdy będą gotowe.

Ma to tę dodatkową zaletę, że umożliwia ponowne uruchamianie zadań po zacięciu papieru itp. Bez odtwarzania ich od zera. Umożliwia także kontynuowanie pracy bez przerywania zarządzania drukarką.

Jeśli chcesz, możesz napisać mały skrypt, który działałby w tle i zaczął drukować rzeczy pojawiające się w kolejce wydruku. Jeśli to zrobisz, możesz nazwać swoje zadania drukowania, aby sortowały się w kolejce w kolejności, w jakiej chcesz je wydrukować. Po prostu używam 00 ... 99 dla nazw.

W przypadku plików tekstowych zwróć uwagę na te, które mogą mieć długie linie. CUPS (przynajmniej domyślnie) nie zawinie dla ciebie linii ani nie ustawi ładnych marginesów strony.

Mój system drukowania dwustronnego robi o wiele więcej, niż chcesz, ale może dać ci kilka pomysłów. W szczególności ma dwa małe skrypty pomocnicze dprint i dprintm, które pobierają tekst i oswajają go przed wysłaniem do drukarki.

http://sourceforge.net/projects/duplexpr/
Joe
źródło
0

Wiem, że to jest stare - ale sposób, aby to zrobić, jest teraz zmieniony, gdy odkryłem dzisiaj:

będziesz musiał zainstalować filemanager-akcje - było już w moim systemie

sudo apt-get install filemanager-actions

Następnie weź nautilus-akcje

sudo add-apt-repository ppa:dr3mro/nautilus-actions-extra
sudo apt-get update
sudo apt-get install nautilus-actions

Otwórz FileManager-Actions i utwórz nową akcję jak wyżej:

Action Tab
    Nautilus Item
        Display item in selection context menu (tick)
        Display item in location context menu (tick)
        Context Label : Print
        Display item in the toolbar (tick)
        Use same label for icon in the toolbar (tick)

Command Tab
    Profile
        Label: Default profile
    Command
        Path: lp
        Parameters: %f
        Working directory: %d

Zmodyfikuj informacje o innych kartach, tak aby zachowywał się nautilus.

Zapisz akcję, uruchom ponownie nautilus.

Twoje menu kontekstowe pokaże „Drukuj” ...

pomogło mi kilka linków: LibreOffice Drukuj Kliknij prawym przyciskiem myszy Drukuj

Matthew Hudson
źródło
-1

Lub użyj Ruby :-)

sudo apt-get install ruby
irb
Dir.glob('*.*').each{ |f| `lp '#{ f }'` }
msa.im
źródło