Bagaimana cara mencetak halaman tertentu dari baris perintah?

8

Apakah ada cara untuk mengirim file PDF (atau file) ke printer melalui baris perintah, tetapi hanya mencetak, katakanlah, halaman bernomor ganjil? Misalnya, lpr -{some option} *.pdfatau mungkin {some command to get odd-numbered pages} *.pdf | lpr. Ini akan lebih cepat daripada membuka setiap file, membuka dialog Print, dan menyuruhnya untuk mencetak halaman 1, 3, 5, 7, 9 ... Idenya adalah untuk mencetak semua halaman ganjil, maka saya dapat mencetak halaman bernomor genap di sisi lain kertas.


sumber

Jawaban:

10

Mencoba

lpr -o page-set=odd <file>
lpr -o page-set=even <file>

Anda dapat menemukan dokumentasi ini dan opsi lpr lainnya di dokumentasi piala .

fschmitt
sumber
@ fschmitt: Terima kasih, itu bekerja dengan sempurna! (Maaf, saya tidak tahu bagaimana berkomentar daripada meninggalkan seluruh jawaban.)
Wolf
Apakah ada halaman manual yang mengumpulkan semua lpropsi yang mungkin ?
Geremia
4

Alternatif untuk solusi cangkir oleh fschmitt - misalnya jika Anda hanya memiliki beberapa lpr terbatas - adalah perintah psselect .

Misalnya untuk pencetakan dupleks manual dalam printer tanpa unit dupleks:

$ psselect -e -r < foo.ps | lpr
$ # manually rotate pages by 180 degrees and reinsert
$ psselect -o < foo.ps | lpr

Yah, hanya berfungsi jika printer Anda memiliki mekanisme transportasi kertas padat ...

-e hanya memilih halaman genap, -o yang aneh, dan -r membalikkan seleksi

maxschlepzig
sumber
2

Jika Anda memilih untuk memproses ulang PDF (misalnya karena kerangka kerja pencetakan Anda bukan CUPS dan tidak mendukung pemilihan halaman), Anda dapat melakukannya dengan pdftk .

pdftk A=foo.pdf cat Aodd output - | lpr
# take out the sheets and feed them back in
pdftk A=foo.pdf cat Bend-1even output - | lpr

Tergantung pada seberapa murah printer Anda, Anda mungkin perlu mencetak halaman ganjil secara terbalik dan halaman genap secara berurutan: pindah end-1ke perintah lain. Jika dokumen memiliki jumlah halaman ganjil, keluarkan halaman terakhir dari tumpukan dan jangan masukkan kembali untuk yang kedua kalinya.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Hm, tentang pembakaran kertas - model dupleks printer HP yang saya temui selalu melakukan penyisipan ulang halaman secara otomatis untuk mencetak di bagian belakang, mereka tidak mencetak kedua sisi sekaligus.
maxschlepzig
@maxschlepzig: Ya, Anda benar, saya sudah terlalu menyamaratakan poin yang valid. Mencetak pada bagian belakang lembaran yang sudah ada dan telah mengumpulkan beberapa hal buruk (bintik kotoran, tinta inkjet, air mata kecil, ...) dapat merusak kertas atau printer, tetapi memasukkan kembali kertas tersebut saat keluar dari printer untuk pertama kali baik-baik saja.
Gilles 'SO- stop being evil'