Birden çok pdf'den ilk sayfayı ayıkla


17

İlk sayfayı çıkarmak ve çıkarmak için yaklaşık 500 PDF var. Daha sonra zaman alan dönüşüm sürecinden geçmeleri gerekiyor, bu yüzden 500 pdfs'den sadece ilk sayfayı ayıklamak ve yeni bir pdf'ye yerleştirmek için bir toplu işlem yaparak biraz zaman kazanmayı umuyordum. Acrobat etrafında bir dürtme yaptınız, ancak bunu birden fazla dosya için yapmanın gerçek bir yöntemi bulamıyor. Bunun gerçekleştirilebileceği başka programlar veya yöntemler bilen var mı? Özgür ve açık kaynak elbette daha elverişlidir :)

EDIT: Aslında sadece bir sayfa ayıklamak için GhostScript kullanarak bazı başarılar elde. Şimdi nasıl toplu iş ve dosya listesini almak ve bunları kullanmak bakıyorum.


Dönüştürme işlemindeki diğer adımlar neler içerir?
Ignacio Vazquez-Abrams

Düzenlemenizle Hakkında, bkz benim düzenlemek.
Şahane

Yanıtlar:


29

Kullanılması PDFTK ...

Komut satırından mac ve linux üzerinde.

for file in *.pdf ; do pdftk "$file" cat 1 output "${file%.pdf}-page1.pdf" ; done

Windows'ta bir toplu iş dosyası oluşturabilirsiniz. Not Defteri'ni açın, bunu içine yapıştırın:

for %%I in (*.pdf) do "pdftk.exe" "%%I" cat 1 output "%%~nI-page1.pdf"

"Pdftk.exe" dosyasını pdftk dosyasının tam yoluyla değiştirmeniz gerekebilir, örn. "C:\Program Files\pdftk\pdftk.exeYa da her neyse. (Windows'u kullanmıyorum, bu yüzden bilmiyorum.)

.Bat ile biten bir uzantıyla kaydedin, PDF'lerle klasöre bırakın ve çift tıklayın.

Aynı şeyi Ghostscript ile de yapabilirsiniz, evet.

Bakalım. Mac ve Linux için (tümü bir satır):

for file in *.pdf ; do gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="${file%.pdf}-page1.pdf" -dFirstPage=1 -dLastPage=1 "$file" ; done

Bir Windows toplu iş dosyası için karşılık gelen komutun tam olarak ne olacağından emin değilim. En iyi tahminim (-Pencerem yok, bu yüzden test edemiyorum--):

for %%I in (*.pdf) do "C:\Program Files\gs\gs9.00\gswin32c.exe" -dSAFER -dNOPAUSE -dBATCH -sDEVICE#pdfwrite -sOutPutFile#"%%~nI-page1.pdf" -dFirstPage#1 -dLastPage#1 "%%I"

Hayalet komut dosyası yürütülebilir dosya yolunu iki kez kontrol edin ve Windows kullanmadığım için bunu test etmedim.


DÜZENLEME: Tamam, muhtemelen 500 adet 1 sayfalık PDF istemediğinizi fark ettim, ancak hepsini birleştiren tek bir PDF. Yukarıdakileri çalıştırın ve bu size 500 adet 1 sayfalık PDF bırakacaktır. Mac ve Linux'ta pdftk ... kullanarak birleştirmek için:

pdftk *-page1.pdf cat output combined.pdf

Yukarıdaki gibi, belki de pdftk için tam yola ihtiyaç dışında, muhtemelen Windows'da aynı olduğunu düşünüyorum. Bu satırı, toplu iş dosyanızda yukarıdaki satırdan sonra ekleyebilirsiniz.

Ghostscript ile ... Mac ve Linux'ta:

gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="combined.pdf" *-page1.pdf

Ve başlangıçta "gs" yerine yukarıdaki gibi gswin32c.exe dosyasının tam yolunu değiştirmek dışında, muhtemelen Windows'da da aynıdır.

Her ikisini de tek bir adımda yapmak için bir hayalet komut dosyası olabilir, ancak şu anda anlamaya çok tembelim.

Bunları birleştirmenin sırası önemliyse, daha fazla bilgiye ihtiyacımız olacak.


aradığım komut buydu. öğleden sonra linux döngüleri hakkında okuma geçirdim! İlk komut doğru olanı, yani 500 tek sayfa pdfs gerekir. Tüm ilk sayfaları tek bir pdf'ye almayı başarmıştı, ancak excel'e dönüştürme işlemi yönetilemez hale getiriyor. Kullanıcılarımın çok zorlayıcı ancak zorlayıcı bazı özel istek ve düzen gereksinimleri var. yardım için teşekkürler !!
Tim Alexander

2

Bugün bunu Linux'ta yapmak zorundaydım. Mac için de çalışmalıdır. Terminalinizden aşağıdaki komutu yürütün.

lpr -o page-ranges="1-1" path/to/folder/*.pdf

lpr işleri yazıcıya gönderir.

Komuttaki * karakter kullanımını not edin. Bu, dizindeki tüm PDF dosyalarınız için komutu çalıştırır.


İşaret ettiğiniz gibi, bu, işleri yazıcıya gönderir. OP'nin istediği bu değil.
Nick K9

1

Bence pdf-forge gibi bir pdf sanal yazıcı kullanabilirsiniz.

Sadece ilk sayfayı "yazdım", şimdi bir mac'tayım ve deneyemiyorum ama bir kerede daha fazlasını yapabileceğinizden eminim.

İyi şanslar!!

Trufa


onlara işaretçiler için teşekkürler. bunlar beni istediğim gibi yapabilen GhostScript'e yönlendirdi. Teşekkürler
Tim Alexander

@ Zaman Alexander, hiç sorun değil !!
Trufa

0

Windows toplu iş dosyası komutuna (.bat) gelince (%% bir bat dosyasındaki değişkenler içindir)

çözünürlük / boyut ile jpg olarak pdf ilk sayfa çıkarma

for %%I in (*.pdf) do "C:\Program Files (x86)\gs\gs9.14\bin\gswin32c.exe" -dSAFER -dNOPAUSE -dBATCH -sDEVICE#jpeg -r20 -sOutputFile#"%%~nI.jpg" -dFirstPage#1 -dLastPage#1 "%%I"

(yukarıdaki yazıda sOutputFile yanlış yazılmıştır .. ve standart gs x86 kurulumunun geçerli yolu ile)

(ayrıca çok sayfalı PDF'yi tek JPG'ye dönüştürmek için Ghostscript'i kullanma konusuna bakın ? )


0

Linux'ta

Bu komut satırını yazdım

tree -fai . | grep -P ".pdf$" | xargs -L1 -I {} pdftk {} cat 1 output {}.firstpage.pdf

Ama bu işi yapıyor, test ettim, aynı zamanda sahip olduğunuz çok sayıda klasörle çalışıyor. Klasör yapısının kökü olarak çalıştırdığınızdan emin olun. Her klasörde her pdf dosyası için biten bir ek pdf dosyası bulunur..firstpage.pdf

İhtiyacınız var pdftkve bunun treeiçin ve Ubuntu Linux'ta apt ile yükleyebilirsiniz:

sudo apt install pdftk tree

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.