Bir grup PDF'nin son sayfasını nasıl ayıklayabilir ve / veya kaldırabilirim?


14

Satıcılarımızdan biri, onlardan aldığımız PDF'lerin son sayfasına gereksiz derecede büyük bir görüntüyü taramayı başlattı. Bunu düzeltmem gerek. Ancak, bunlardan yüzlerce var, bu yüzden manuel olarak girmek yasak. Bir PDF'nin son sayfasını otomatik olarak silmek ve sonra silmek için en iyi yollar nelerdir (Tercihen birincisi, sonra diğeri; hala görüntü boyutu olmayan birini silmediğimi dosya boyutuyla onaylamam gerekiyor?) İşletim sistemi Linux.

Ben çizgileri boyunca bir şey ile, ghostscript kullanarak ayıklayabilirsiniz gs -dFirstPage=5 -dLastPage=5, ama bunu otomatikleştirmek gerekir, ben geçemez ve son sayfanın sayısını ne olduğunu manuel olarak bulamıyorum.

Herhangi bir fikir?

Düzenleme: Açıklığa kavuşturmak için, sadece son sayfayı bölmek / silmek istiyorum. İçindeki görüntü değil, son sayfa dönemini tüketim.


1
Bakın pdftk- Bu tür bir görev için genel olarak çalışabileceğimden eminim.
Daniel Andersson

Olası kopya: Unix: pdf
dosyasını

2
Uzaktan bunun bir kopyası değil.
Andrew

Yine de açıklığa kavuşturmam gerektiğini hissediyorum: Son sayfadaki bir görüntüyü kaldırmak istemiyorum. Son sayfayı, dönemi kaldırmakla ilgileniyorum.
Andrew

1
Ask Ubuntu ile ilgili birden fazla farklı cevap içeren ilgili soru: askubuntu.com/questions/221962/…
TuringTux

Yanıtlar:


2

@Daniel Andersson'un zaten yorumladığı gibi, bu kolayca şu şekilde yapılabilir pdftk:

pdftk input.pdf cat end-1 output temp.pdf
pdftk temp.pdf  cat end-2 output output.pdf
rm temp.pdf

Yine de pdftk bir çağrı ile yapılabilir olup olmadığını bilmiyorum ...

Düzenleme : thanosk'un cevabı ve kullanımı ile birleştirebilirsiniz (bash):

pdftk input.pdf cat 1-$((last-1)) output output.pdf

Değişkene zaten son sayfayı çıkardığınızda $last.


Örnek çalışmıyor. @Sid Steward'ın daha iyi çalışması için cevabını buldu.
Reado

14

@ Eldering'in cevabını daha da iyileştirmek için, pdftk sürüm 1.45 ve üzeri, küçük harf r'yi sayfa numarasına ekleyerek sayfalara ters sırayla başvurma araçlarına sahiptir. PDF'deki son sayfa r1, bir sonraki son sayfa r2 vb.

Örneğin, tek pdftk çağrısı:

pdftk input.pdf cat 1-r2 output output.pdf

son sayfayı input.pdf dosyasından bırakır - giriş en az iki sayfa uzunluğunda olmalıdır.

Dosya boyutunu test etmek için PDF'nin yalnızca son sayfasını çıkarmak için şunu çalıştırın:

pdftk input.pdf cat r1 output final_page.pdf

Pdftk Linux'ta kullanılabilir. Birçok dağıtımın kurabileceğiniz bir ikili dosyası vardır. Yine de sürüm 1.45 veya üzeri olduğundan emin olmalısınız. Değilse, kaynak koddan pdftk oluşturabilirsiniz.


rN-şey tam olarak ihtiyacım olan şeydi, çünkü lateks tabanlı pdf oluşturma sistemim her zaman başlangıçta bazı boş sayfalar üretti ve neredeyse belgenin sonunda onları sonunda elle kaldırmak zorunda kaldım. Şimdi sadece şunu çağırıyorum: pdftk A = pocket20.pdf cat A3-r6 r3-end çıktı pocket_to_print.pdf ilk iki ve dördüncü, son 5 sayfa kaldırır.
Martin T.

1

pdfinfo size gerçek pdf dosyasının boyutunu verir ve pdfimages size söz konusu pdf dosyasındaki görüntülerin bir dizinini verir. Böylece forma bir komut dosyası yazabilirsiniz

#!/bin/bash
for i in *.pdf
do
        j=$(pdfinfo "$i" |awk '/^Pages/ { print $2}')
        pdfimages -list -p -f "$j" "$i"
done

belirli bir dosyanın son sayfada bir resmi varsa geri dönmesi gerekir. Eğer öyleyse, yapmanız gereken herhangi bir manipülasyonu yapabilirsiniz.


0

İşte pdftk yerine pdfjam kullanan bir çözüm:

#!/bin/sh
fname=`basename $1`
pdfjam $1 1-$((`pdfinfo $1 | grep Pages | grep -shoPe '\d+'` - ${2:-1})) -o ${fname%.*}-trimmed.pdf

Burada birinci argüman kırpılacak dosya ve ikinci argüman kırpılacak sayfa miktarıdır (varsayılan değer 1'dir).


0

Bir bir liner çözeltisi kullanmak olacaktır findbirlikte pdftk:

find . -name "*.pdf" -exec pdftk {} cat 1-r2 output cut/{} \;

NOT : kırpılan dosyalar bu örnekte, giriş dosyalarının üzerine yazılmasına izin vermediği cutiçin orijinal dosya adını korumak için çağrılan bir alt dizinde saklanır pdftk.

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.