Adakah yang tahu cara yang baik untuk membagi halaman pdf menjadi dua halaman baru?
Untuk lebih jelasnya, saya tidak mencoba membagi halaman yang sudah ada dari pdf; Saya mencoba membuat dua halaman baru dari satu halaman yang sudah ada.
Adakah yang tahu cara yang baik untuk membagi halaman pdf menjadi dua halaman baru?
Untuk lebih jelasnya, saya tidak mencoba membagi halaman yang sudah ada dari pdf; Saya mencoba membuat dua halaman baru dari satu halaman yang sudah ada.
Jawaban:
Coba BRISS .
Ini memungkinkan Anda membagi setiap halaman menjadi subhalaman sebanyak yang Anda inginkan dengan mendefinisikan wilayah dengan GUI. Ini mengelompokkan semua halaman yang sama ke dalam grup untuk Anda, sehingga Anda dapat menentukan wilayah untuk grup itu sekali.
Ini cross-platform, gratis, dan open-source.
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 ;-)
... 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 jawaban untuk kasus ini di respons lain ini .
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.
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 -->
Selanjutnya, bagian yang tepat:
gs \
-o right-sections.pdf \
-sDEVICE=pdfwrite \
-g4210x5950 \
-c "<</PageOffset [-421 0]>> setpagedevice" \
-f double-page-input.pdf
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 -->
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 A B \
output single-pages-output.pdf
verbose
Selesai Inilah hasil yang diinginkan. 4 halaman berbeda, berukuran 421x595 pt.
Hasil:
+------------+ +------------+ +------------+ +------------+ ^
| | | | | | | | |
| 1 | | 2 | | 3 | | 4 | |
| | | | | | | | 595 pt
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
+------------+ +------------+ +------------+ +------------+ v
<-- 421 pt --> <-- 421 pt --> <-- 421 pt --> <-- 421 pt -->
"<</PageOffset [-421 0]>> setpagedevice"
. Saya kira itu tergantung pada orientasi file asli. Meskipun demikian, jawaban yang sangat bagus. :)
Terima kasih kepada @marttt dan jawabannya di Unix & Linux .
Anda dapat menggunakan mutool
(yang merupakan bagian dari mupdf
):
mutool poster -x 2 input.pdf output.pdf
Anda juga dapat menggunakan -y
jika Anda ingin melakukan split vertikal.
Untuk memperluas jawaban @ Kurt (karena saya tidak memiliki poin reputasi yang cukup untuk berkomentar) pertama-tama pastikan dimensi yang Anda gunakan tidak didasarkan pada dimensi Crop Box jika mereka berbeda dari dimensi Media Box. Ukuran output didasarkan pada dimensi Media Box, tetapi offset tampaknya menggunakan dimensi Crop Box.
Untuk halaman gatefold yang memiliki kotak media 20.0833 x 13.833 dan kotak potong 19.25 x 13.0 yang sama dengan kotak trim di dokumen saya, untuk membaginya menjadi dua halaman di Ubuntu, untuk sisi kiri:
gs -o left.pdf -sDEVICE=pdfwrite -g7230x9960 -c "<</PageOffset [0 0]>> setpagedevice" -f gatefold.pdf
Sisi kanan:
gs -o right.pdf -sDEVICE=pdfwrite -g7230x9960 -c "<</PageOffset [-693 0]>> setpagedevice" -f gatefold.pdf
Dan kemudian menjahitnya pdftk left.pdf right.pdf output final.pdf
.
Alternatifnya adalah dengan mengatur kotak krop menjadi sama dengan kotak media; maka offsetnya adalah -723. Namun, pemangkasan harus diatur ulang untuk memangkas agar halaman-halamannya tampak mulus. Jika tidak, atur media untuk memotong.