Bir pdf sayfasını ortadan iki yeni sayfaya ayırmanın iyi bir yolunu bilen var mı?
Açıkçası, zaten mevcut sayfaları bir pdf'den ayırmaya çalışmıyorum ; Mevcut bir tek sayfadan iki yeni sayfa oluşturmaya çalışıyorum.
Bir pdf sayfasını ortadan iki yeni sayfaya ayırmanın iyi bir yolunu bilen var mı?
Açıkçası, zaten mevcut sayfaları bir pdf'den ayırmaya çalışmıyorum ; Mevcut bir tek sayfadan iki yeni sayfa oluşturmaya çalışıyorum.
Yanıtlar:
BRISS'i deneyin .
Bir GUI ile bölgeleri tanımlayarak her sayfayı istediğiniz kadar alt sayfaya ayırmanızı sağlar. Tüm benzer sayfaları sizin için gruplar halinde gruplandırır, böylece o grup için bölgeleri bir kez tanımlayabilirsiniz.
Çapraz platform, özgür ve açık kaynak.
Bunu Ghostscript'in yardımıyla çözebilirsin. pdftk
tek başıma bunu yapamam (bildiğim kadarıyla). Bunu manuel olarak yapmak için size komut satırı adımlarını vereceğim. Bunu bir prosedür olarak, ayrıca sayfa boyutları ve sayfa numaraları için farklı parametrelerle kodlamak kolay olacaktır. Ama bunu kendin yapabileceğini söyledin ;-)
... ve eğlencesi için, geçenlerde "iki katına" sayfa içeren bir giriş dosyası ile değil , "tiz" içeren bir dosya yaptım . Bu davanın cevabını diğer cevabında okuyabilirsiniz .
Davanız daha da basit. Buna benzer bir şeyiniz var gibi görünüyor:
+------------+------------+ ^
| | | |
| 1 | 2 | |
| | | 595 pt
| | | |
| | | |
| | | |
+------------+------------+ v
^
fold
v
+------------+------------+ ^
| | | |
| 3 | 4 | |
| | | 595 pt
| | | |
| | | |
| | | |
+------------+------------+ v
<---------- 842 pt -------->
Her biri 421 pt x 595 pt boyutunda olan 4 sayfalık 1 PDF oluşturmak istiyorsunuz.
Önce sol bölümleri giriş sayfalarının her birinden çıkaralım:
gs \
-o left-sections.pdf \
-sDEVICE=pdfwrite \
-g4210x5950 \
-c "<</PageOffset [0 0]>> setpagedevice" \
-f double-page-input.pdf
Bu parametreler ne yaptı?
İlk önce, PDF olarak 1 inç == 72 puan olduğunu bilin . O zaman gerisi:
-o ...............:
İsimler çıktı dosyası. Örtülü de kullanır -dBATCH -dNOPAUSE -dSAFER
.-sDEVICE=pdfwrite :
PDF'yi çıktı formatı olarak istiyoruz.-g................:
çıktı medya boyutunu piksel cinsinden ayarlar. pdfwrite varsayılan çözünürlüğü 720 dpi'dir. Bu nedenle PageOffset ile eşleşme elde etmek için 10 ile çarpın.-c "..............:
Ghostscript'ten verilen PostScript kod pasajını ana giriş dosyasından hemen önce (izlemesi gereken -f
) işlemesini ister .<</PageOffset ....:
sayfa görüntüsünün ortama kaymasını ayarlar. (Tabii ki, sol sayfalar için vardiya [0 0]
gerçek etkiye sahip değildir.)-f ...............:
bu giriş dosyasını işleyin.Son komut hangi sonucu elde etti?
Bu:
Output file: left-sections.pdf, page 1
+------------+ ^
| | |
| 1 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
Output file: left-sections.pdf, page 2
+------------+ ^
| | |
| 3 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
<-- 421 pt -->
Sonra, doğru bölümler:
gs \
-o right-sections.pdf \
-sDEVICE=pdfwrite \
-g4210x5950 \
-c "<</PageOffset [-421 0]>> setpagedevice" \
-f double-page-input.pdf
Sonuç:
Output file: right-sections.pdf, page 1
+------------+ ^
| | |
| 2 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
Output file: right-sections.pdf, page 2
+------------+ ^
| | |
| 4 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
<-- 421 pt -->
Şimdi sayfaları tek bir dosyada birleştiriyoruz. Bunu Ghostscript ile de yapabilirdik, ama pdftk
onun yerine kullanacağız , çünkü bu iş için daha hızlı:
pdftk \
A=right-sections.pdf \
B=left-sections.pdf \
shuffle A B \
output single-pages-output.pdf
verbose
Bitti. İşte istenen sonuç. 421x595 pt boyutunda 4 farklı sayfa.
Sonuç:
+------------+ +------------+ +------------+ +------------+ ^
| | | | | | | | |
| 1 | | 2 | | 3 | | 4 | |
| | | | | | | | 595 pt
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
+------------+ +------------+ +------------+ +------------+ v
<-- 421 pt --> <-- 421 pt --> <-- 421 pt --> <-- 421 pt -->
"<</PageOffset [-421 0]>> setpagedevice"
. Sanırım orijinal dosyanın yönüne bağlı. Yine de mükemmel cevap. :)
@Marttt'a ve Unix & Linux'taki cevaplarına teşekkürler .
(Bunun bir mutool
parçası olarak gelir mupdf
) kullanabilirsiniz:
mutool poster -x 2 input.pdf output.pdf
-y
Dikey bölme yapmak istiyorsanız da kullanabilirsiniz .
@ Kurt'ın cevabını genişletmek için (yorumlayacak kadar itibar puanım olmadığından), öncelikle kullandığınız boyutların Media Box boyutlarından farklı olması durumunda Crop Box boyutlarına dayanmadığından emin olun. Çıktı boyutu Medya Kutusu boyutlarına dayanır, ancak ofset Kırpma Kutusu boyutlarını kullanıyor gibi görünüyor.
20.0833 x 13.833 ortam kutusu ve belgemdeki kırpma kutusuyla aynı olan 19.25 x 13.0 kırpma kutusundaki geçit sayfası için, sol tarafta Ubuntu'da iki sayfaya ayırmak için:
gs -o left.pdf -sDEVICE=pdfwrite -g7230x9960 -c "<</PageOffset [0 0]>> setpagedevice" -f gatefold.pdf
Sağ taraf:
gs -o right.pdf -sDEVICE=pdfwrite -g7230x9960 -c "<</PageOffset [-693 0]>> setpagedevice" -f gatefold.pdf
Ve sonra onları dikildi pdftk left.pdf right.pdf output final.pdf
.
Bir alternatif, kırpma kutusunu medya kutusu ile aynı yapmaktır; o zaman ofset -723 olur. Ancak daha sonra, sayfaların sorunsuz görünmesi için kırpmanın kırpılması için sıfırlanması gerekir. Aksi takdirde, medyayı kırpılacak şekilde ayarlayın.