Anda dapat menyelesaikan ini dengan bantuan Ghostscript. pdftk
sendiri tidak bisa melakukan itu (sejauh pengetahuan saya). Saya akan memberi Anda langkah-langkah commandline untuk melakukan ini secara manual. Ini akan mudah untuk skrip ini sebagai prosedur, juga dengan parameter berbeda untuk ukuran halaman dan nomor halaman. Tetapi Anda mengatakan bahwa Anda dapat melakukannya sendiri ;-)
Cara mengatasi ini dengan bantuan Ghostscript ...
... dan untuk bersenang-senang, saya baru-baru ini melakukannya bukan dengan file input yang menampilkan halaman "ganda", tetapi satu dengan "treble-up". Anda dapat membaca jawabannya untuk kasus ini di sini .
Kasing Anda bahkan lebih sederhana. Anda sepertinya memiliki sesuatu yang mirip dengan ini:
+------------+------------+ ^
| | | |
| 1 | 2 | |
| | | 595 pt
| | | |
| | | |
| | | |
+------------+------------+ v
^
fold
v
+------------+------------+ ^
| | | |
| 3 | 4 | |
| | | 595 pt
| | | |
| | | |
| | | |
+------------+------------+ v
<---------- 842 pt -------->
Anda ingin membuat 1 PDF dengan 4 halaman, masing-masing memiliki ukuran 421 pt x 595 pt.
Langkah pertama
Pertama mari kita ekstrak bagian kiri dari masing-masing halaman input:
gs \
-o left-sections.pdf \
-sDEVICE=pdfwrite \
-g4210x5950 \
-c "<</PageOffset [0 0]>> setpagedevice" \
-f double-page-input.pdf
Apa yang dilakukan parameter ini?
Pertama, ketahuilah bahwa dalam PDF 1 inci == 72 poin . Maka sisanya adalah:
-o ...............:
Nama file keluaran. Secara implisit juga menggunakan -dBATCH -dNOPAUSE -dSAFER
.
-sDEVICE=pdfwrite :
kami ingin PDF sebagai format output.
-g................:
mengatur ukuran media keluaran dalam piksel. Resolusi default pdfwrite adalah 720 dpi. Maka kalikan dengan 10 untuk mendapatkan kecocokan untuk PageOffset.
-c "..............:
meminta Ghostscript untuk memproses cuplikan kode PostScript yang diberikan tepat sebelum file input utama (yang perlu diikuti -f
).
<</PageOffset ....:
mengatur pemindahan gambar halaman pada media. (Tentu saja, untuk halaman kiri pergantian oleh [0 0]
tidak memiliki efek nyata.)
-f ...............:
memproses file input ini.
Hasil apa yang dicapai perintah terakhir?
Yang ini:
Output file: left-sections.pdf, page 1
+------------+ ^
| | |
| 1 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
Output file: left-sections.pdf, page 2
+------------+ ^
| | |
| 3 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
<-- 421 pt -->
Tahap kedua
Selanjutnya, bagian yang tepat:
gs \
-o right-sections.pdf \
-sDEVICE=pdfwrite \
-g4210x5950 \
-c "<</PageOffset [-421 0]>> setpagedevice" \
-f double-page-input.pdf
Perhatikan offset negatif karena kami menggeser halaman ke kiri sambil menjaga area tampilan tetap.
Hasil:
Output file: right-sections.pdf, page 1
+------------+ ^
| | |
| 2 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
Output file: right-sections.pdf, page 2
+------------+ ^
| | |
| 4 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
<-- 421 pt -->
Langkah terakhir
Sekarang kita menggabungkan halaman menjadi satu file. Kita bisa melakukannya dengan ghostscript juga, tetapi kita akan menggunakannya pdftk
sebagai gantinya, karena lebih cepat untuk pekerjaan ini:
pdftk \
A=right-sections.pdf \
B=left-sections.pdf \
shuffle \
output single-pages-output.pdf
verbose
Selesai Inilah hasil yang diinginkan. 4 halaman berbeda, berukuran 421x595 pt.
Hasil:
+------------+ +------------+ +------------+ +------------+ ^
| | | | | | | | |
| 1 | | 2 | | 3 | | 4 | |
| | | | | | | |5595 pt
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
+------------+ +------------+ +------------+ +------------+ v
<-- 421 pt --> <-- 421 pt --> <-- 421 pt --> <-- 421 pt -->