1 sayfa PDF'yi sayfa PDF başına 2 sayfaya dönüştürmek nasıl?


44

İlk sayfanın önünde ilk iki sayfa, 3. ve 4. sayfaların arkasındaki ilk sayfalar olacak şekilde bir PDF yazdırmak istiyorum.

-----------------          -----------------
|       |       |          |       |       |
|       |       |          |       |       |
|   1   |   2   |          |   3   |   4   |    . . .
|       |       |          |       |       |
|_______|_______|          |_______|_______|

 page 1 - front             page 1 - back

Linux kullanan yazıcım, manuel olarak dupleks yazdırmayı desteklemediğinden, belki de pdf dosyasını buna göre düzenleyebilirim diye düşündüm.

Ama nasıl?


Bunun mümkün olduğunu sanmıyorum, sadece pdf'iniz var mı?
Michael K

Bu Linux'ta psutils paketinden ve / veya pdftk'ten pstop'lar kullanarak mümkündür. Hangi işletim sistemini kullanıyorsunuz?
REMS

@Ivo Flipse: har, ben tam olarak aynı düşündüm :) bu yüzden, yorumunuz da +1 alır.
akira

@Ivo Flipse, @rems: Buradan daha fazla ASCII sanatını artırabilirsiniz: superuser.com/questions/54054/… ve superuser.com/questions/235074/… ... @mokasin: bu bağlantılar size nasıl çözüleceğine dair bir fikir verebilir İstediğin görev.
Kurt Pfeifle

Yanıtlar:


23

Bahsedilenlere ek olarak, PDFjam bunu yapan bir komut satırı aracı da içerir pdfnup. (Altında da kullanabileceğiniz PDFLaTeX için pdfpages paketini kullanır.)

Bir GUI'yi tercih ederseniz, jPDFtweak başka bir seçenektir.


Mükemmel. Tam da aradığım şey.
mokasin

1
Örnek kullanım: pdfnup --nup 2x1 mypdf.pdf. Bu, kısa kenardan çevrilerek yazdırılacak şekilde yatay görünümde yaprak başına 2 sayfa yan yana yazdırır. Bkz man pdfnupbirkaç fazla ayrıntı için.
Gabriel Staples

Ben de bir cevap eklemeye karar verdim: 1-pg pdf'yi aynı sayfada kopyalanan 2 kopya ile bir manzara görünümüne nasıl dönüştürebileceğimi (broşürleri yazdırmak için harika): superuser.com/a/1452008/425838
Gabriel Zımba

24

Pdfnup kullan:

$ pdfnup file.pdf

Bu tam olarak istediğiniz gibi yeni bir pdf dosyası oluşturacaktır.


pdfnup, pdfjam ile kullanılan komut satırı seçeneklerini gösterir; böylece oradan ince ayar yapabilirsiniz. (örn: eğer manzaraya sahip olmak istemiyorsanız. pdfjam'ı çağırırken
Trevor Boyd Smith

6
Daha tam olarak 1'de 2 sayfa ile pdfnup --nup 2x1 --suffix test file.pdfbir yaratacaktırfile-test.pdf
lolesque

1
sudo apt install texlive-extra-utilsBu programları Ubuntu’ya yüklemek için.
Sarke,

Tek bir sayfam var a4 Yaprak başına a5'in iki kopyasını basmak istiyorum. Bunu nasıl başarabilirim? 'PDFnUP' kullanım Yukarıdaki örnekler yok değil ilk sayfayı çoğaltmak, ancak bunun yerine ilk a4 sac ham ikinci a5-parçası yapar.
Nordlöw

2

Bu, şu anda sahip olduğumuz seçeneklerin mevcut olmadığını düşünecek kadar eski bir sorudur, ancak belki de güncel bir çözümü hak ediyor.

Linux pdf görüntüleyicileri genellikle sayfa düzenini ayarlamak için yazdırma seçeneklerini / özelliklerini kullanır ve orada her sayfaya / sayfaya birden fazla sayfa yazdırabilirsiniz. Fikir, bunları PDF olarak yazdırmak için kullanmaktır .

Evince de yapabilir, ayrıca qpdfview . Daha burada.


qpdfview

görüntü tanımını buraya girin

görüntü tanımını buraya girin


Evince

görüntü tanımını buraya girin


PDF Studio Görüntüleyici

görüntü tanımını buraya girin

Diğer pdf görüntüleyicilerin de benzer seçenekleri olmalıdır.


1

Pdfs'yi okuyucuların formalarına, kitapçık formalarına vb. Dönüştürmek için ücretsiz ve açık kaynaklı komut satırı araçları bulunmaktadır.

Kullandığım uygulamayı kaybettim, bu yüzden orada yardım yok, ancak hızlı bir aramadan pdfshuffler ( http://sourceforge.net/projects/pdfshuffler/ ) adında bir programı görüyorsunuz . Bir GUI var, o kadar otomatik olması muhtemel değil, ancak başka bir araç için bir ön uç ...


0

Dosyaya yazdırmak için tesis varsa. sayfa başına iki sayfa ayarıyla ve tek sayfalarla dosyayı yazdırın. işlemi çift sayfalarla tekrarlayın. Şimdi garip olanları yazdırın, yazdırılan kağıtları ters çevirin ve çift sayfalar dosyasını yazdırın.


0

@mokasin: Hangi PDF okuyucuyu kullandığınızı söylemediniz. Acrobat / Adobe Reader'ın Linux sürümünü kullanıyorsanız: Yazdırma iletişim kutusunda "2-yukarı" yazdırma seçeneği vardır. Ayrıca yalnızca tek veya çift sayfaları yazdırmayı da seçebilirsiniz, bu nedenle bunu birleştirmek istediğiniz çıktıyı elde etmenize yardımcı olacaktır.


0

Solaris 11.2 işletim sisteminde test ettiğim bu yazılım, genellikle sınıflarda veya toplantılarda dağıtmak için kullanılan, 2-yukarı adı verilen şemayı oluşturabilir. Başka şemalar üretmek mümkündür; örneğin, bir sayfada veya bir sayfanın her iki tarafında da 3 veya 4 veya daha fazla sayfa dağıtın. JAR dosyası olduğu için bir terminalden çalıştırılabilir veya erişim kolaylığı için GUI'yi çalıştırabilir. Solaris'in yanı sıra, diğer Linux dağıtımları da yazılımı süper kullanıcı ayrıcalıklarıyla "çalıştırılabilir" olarak çalıştırarak uyumludur. "Arşivi Aç" kullanmadığınızı unutmayın Ayrıca, çoğu zaman olduğu gibi, zaten yüklü olan bir Java Çalışma Zamanı Ortamı (JRE) bulunan herhangi bir Windows ve Mac üzerinde de çalışır. Yazılım Disprosiyum Uygulamasıdır ve indirmek ve kullanmak ücretsizdir.


0

Yatay görünümde yan yana 2 kopyayla 1 veya 2 pg pdf alıp pdf'ye dönüştürmek isteyen herkes için, ( el ilanları basmak için harika ):

  1. 1 veya 2 pg pdf girişini, bu sayfaların çoğaltılmış bir kopyasını içeren bir çıktıya çevirin (1-pg pdf -> 2-pg pdf, 2-pg pdf -> 4-pg pdf, vb.):

    pdfunite in.pdf in.pdf out.pdf
    
  2. El ilanları basmak için, kopyalanmış kopya pdf'yi yatay görünümde 2 sayfa başına yatay görünümde pdf olarak birleştirin:

    pdfnup out.pdf
    

Veya hepsi tek bir satırda:

pdfunite in.pdf in.pdf out.pdf && pdfnup out.pdf

Bunun out.pdfiçin girdi olduğuna dikkat edin pdfnup. Elde edilen çıktı dosyasına pdfnup" out-nup.pdf " adı verilir .

Ayrıca, pdfnupkomutun çıktısını izleyin ve gerçekte çalıştığı komutun ayrıntılı biçimini göreceksiniz; bu, içine geçirebileceğiniz seçeneklerle ilgili bazı bilgiler verir. Görünüşe göre başlık altında pdfnupkullanır pdfjam:

pdfjam: Bu pdfjam çalışması için etkili çağrı:

/usr/bin/pdfjam --suffix nup --nup '2x1' --landscape -- out.pdf -

Örnek:

Orijinal PDF (Portre görünümünde 1 normal sayfa), " in.pdf ": görüntü tanımını buraya girin

Son PDF (Manzara görünümünde 2 sayfa yan yana), " out-nup.pdf ":
- broşür olarak dışarı çıkmak için artık ortadan aşağıya kesilebilir görüntü tanımını buraya girin

Basit Bash Fonksiyonu: make_flyer

Basit ve kullanımı kolay bir komuta erişmek için bu bash işlevini "~ / .bashrc" dosyanızın altına kopyalayıp yapıştırın make flyer:

# Description: outputs a landscape-oriented flyer pdf ("my/pdf/input--flyer.pdf") for each 1 or more pg input pdf ("my/pdf/input.pdf")
#   - 1-pg input PDFs are converted to a 1-sided landscape, printable flyer that you cut down the center to make 
#     2 flyers
#   - 2-pg input PDFs are converted to a 2-sided landscape, printable flyer (flip on short edge when printing 
#     double-sided), and also cut down the middle to make 2 flyers
#   - **3+ pg input PDFs**: using `pdfnup` directly in this case would make more sense, since this function will
#     otherwise unneccessarily create 2 copies
#   - 3 and 4-pg input PDFs are converted to a single piece of paper, double-sided, flipped on short edge, x 2 copies. 
#     No cutting is necessary
#   - 5+ pg input PDFs simply require half as much paper to print is all since you get 2 pages per side of paper;
#     they do NOT print like booklets, but rather just as a landscape-printed, flipped-on-short-edge bundle of pages
#     (like a deck of slides). You get *2 copies* per print though, so just print half the pages. 
make_flyer() {
    num_args=$# # see: https://stackoverflow.com/questions/4423306/how-do-i-find-the-number-of-arguments-passed-to-a-bash-script/4423321#4423321
    suffix="flyer"

    loop_cnt=0
    for inputpdf in "$@"
    do
        ((loop_cnt++))
        echo "==== CONVERTING PDF $loop_cnt OF $num_args ===="
        echo "     INPUT:  \"$inputpdf\""

        # Strip off the .pdf extension from the input path, while retaining the rest of the path
        # - See: https://stackoverflow.com/questions/12152626/how-can-i-remove-the-extension-of-a-filename-in-a-shell-script/32584935#32584935
        input_path_base="$(echo "$inputpdf" | rev | cut -f 2- -d '.' | rev)"
        input_file_base="$(basename "$inputpdf" .pdf)"
        temp_pdf="${input_path_base}-.pdf" # is "input_path_base-.pdf"

        echo "     OUTPUT: \"$(pwd)/${input_file_base}--${suffix}.pdf\""

        # Convert a single 1-pg pdf into a temporary 2-pg pdf
        pdfunite "$inputpdf" "$inputpdf" "$temp_pdf"

        # Lay out the temporary 2-pg pdf into a side-by-side 1-sided flyer to print; creates "input_path_base--flyer.pdf"
        # Note that `pdfnup` places the output from this operation in the location from where you call this script
        # (ie: in your `pwd` [Present Working Directory])!--NOT the location where temp_pdf is located!
        pdfnup "$temp_pdf" --suffix $suffix

        # Delete the temporary 2-pg pdf, called "input_path_base-.pdf", thereby leaving only the original 
        # "input_path_base.pdf" and the new "input_path_base--flyer.pdf"
        rm "$temp_pdf"
    done
}
alias make_flyer_help='echo -e "Ex usage: make_flyer \"path/to/inputpdf.pdf\" - Creates a landscape-side-by-side flyer version called \"inputpdf--flyer.pdf\"\n          *in your pwd* from a 1 or 2 pg input pdf called \"path/to/inputpdf.pdf\". Accepts multiple arguments. Ex:\n          make_flyer \"path/to/inputpdf1.pdf\" \"path/to/inputpdf2.pdf\""'

Örnek kullanım:

make_flyer "path/to/inputpdf1.pdf" "path/to/inputpdf2.pdf"

Yardım bilgilerine bakın:

make_flyer_help

Çıktı:

$ make_flyer_help   
Ex usage: make_flyer "path/to/inputpdf.pdf" - Creates a landscape-side-by-side flyer version called "inputpdf--flyer.pdf"  
          *in your pwd* from a 1 or 2 pg input pdf called "path/to/inputpdf.pdf". Accepts multiple arguments. Ex:  
          make_flyer "path/to/inputpdf1.pdf" "path/to/inputpdf2.pdf"

Referanslar:

  1. https://superuser.com/a/948095/425838
  2. https://stackoverflow.com/a/11280219/4561887

İlgili:

  1. https://askubuntu.com/questions/214538/printing-in-booklet-format/1095789#1095789

Bash Referansları:

  1. Bash Argümanlar bir bash fonksiyonuna nasıl geçirilir: https://bash.cyberciti.biz/guide/Pass_arguments_into_a_function
  2. Bash Birleştiren dizeler: https://linuxize.com/post/bash-concatenate-strings/
  3. Bir dize olarak saklanan bir cmd yürütme Bash! https://stackoverflow.com/questions/2005192/how-to-execute-a-bash-command-stored-as-a-string-with-quotes-and-asterisk
  4. Bash tüm girişleri bir cmd'ye yineler: https://stackoverflow.com/questions/255898/how-to-iterate-over-arguments-in-a-bash-script/255913#255913
  5. Fonksiyonları için Bash geçen parametreler: https://stackoverflow.com/questions/6212219/passing-parameters-to-a-bash-function/6212408#6212408
  6. 1-pdf pdf broşürünü nasıl değiştirebilirim [kendi ansı!]: 1 sayfa PDF'yi sayfa PDF başına 2 sayfaya nasıl dönüştürebilirim?
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.