Saya memiliki file pdf yang dipindai yang telah memindai dua halaman pada satu halaman virtual (halaman dalam file pdf).
Resolusi dengan kualitas yang baik. Masalahnya adalah saya harus memperbesar saat membaca dan menarik dari kiri ke kanan.
Apakah ada perintah ( convert
,, pdftk
...) atau skrip yang dapat mengkonversi file pdf ini dengan halaman normal (satu halaman dari buku = satu halaman dalam file pdf)?
pdfnup
, daripdfjam
suite.Jawaban:
Berikut skrip Python kecil menggunakan pustaka PyPdf yang melakukan pekerjaan dengan rapi. Simpan dalam skrip bernama
un2up
(atau apa pun yang Anda suka), jadikan itu executable (chmod +x un2up
), dan jalankan sebagai filter (un2up <2up.pdf >1up.pdf
).Abaikan peringatan penghentian apa pun; hanya pengelola PyPdf yang perlu peduli dengan hal itu.
Jika input berorientasi dengan cara yang tidak biasa, Anda mungkin perlu menggunakan koordinat yang berbeda saat memotong halaman. Lihat Mengapa kode saya tidak membagi setiap halaman dengan benar dalam pdf yang dipindai?
Kalau-kalau berguna, inilah jawaban saya sebelumnya yang menggunakan kombinasi dua alat ditambah beberapa intervensi manual:
Kedua alat diperlukan karena sejauh yang saya tahu pdfpages tidak dapat menerapkan dua transformasi berbeda ke halaman yang sama dalam satu aliran. Dalam panggilan ke
pdftk
, ganti 42 dengan jumlah halaman dalam dokumen input (2up.pdf
).Jika Anda tidak memiliki pdfjam 2.0, cukup memiliki instalasi PDFLaTeX dengan paket pdfpages (di Ubuntu: Anda memerlukan texlive-latex-recommended dan mungkin (di Ubuntu: texlive-fonts-recommended ), dan gunakan driver berikut ini file
driver.tex
:Kemudian jalankan perintah berikut, ganti 42 dengan jumlah halaman dalam file input (yang harus dipanggil
2up.pdf
):sumber
pdfjam
perintah.q.mediaBox.lowerRight = (w, h/2)
Hanya tambahan karena saya punya masalah dengan skrip python (dan beberapa solusi lainnya): bagi saya
mutool
bekerja dengan baik. Ini tambahan sederhana dan kecil yang dikirimkan bersamamupdf
pembaca yang elegan . Jadi, Anda dapat mencoba:Untuk pemisahan horizontal, ganti
y
denganx
. Dan Anda tentu saja dapat menggabungkan keduanya untuk solusi yang lebih kompleks.Sangat senang telah menemukan ini (setelah bertahun-tahun penggunaan mupdf setiap hari :)
mutool
hadir dengan mupdf mulai dari versi 1.4: http://www.mupdf.com/newsMenginstal
mupdf
danmutool
dari sumber:Atau buka halaman unduhan untuk menemukan versi yang lebih baru.
sumber
mutool
dibuat untuk ini. Juga, waspadalah-y
, saya pikir dalam banyak kasus apa yang Anda inginkan-x
.Imagemagick dapat melakukannya dalam satu langkah:
sumber
-density 400
parameter` bahkan memiliki kualitas yang lebih baik.Perintah Konversi ImageMagick dapat membantu Anda memotong file Anda menjadi 2 bagian. Lihat http://www.imagemagick.org/Usage/crop/
Jika saya jadi Anda, saya akan menulis skrip (shell) seperti ini:
Untuk setiap halaman, pangkas paruh pertama dan masukkan ke file bernama $ {PageNumber} A
Pangkas babak kedua dan masukkan ke file bernama $ {PageNumber} B.
Anda mendapatkan 1A.pdf, 1B.pdf, 2A.pdf, 2B.pdf, dll.
sumber
Berdasarkan jawaban dari Gilles dan bagaimana menemukan jumlah halaman PDF yang saya tulis
Jadi saya bisa lari
di mana 50 untuk menyesuaikan margin dan 1,2 untuk skala.
sumber
Berikut variasi kode PyPDF yang diposting oleh Gilles. Fungsi ini akan berfungsi apa pun orientasinya:
sumber
Solusi terbaik adalah mutool lihat di atas:
perpisahan:
tetapi kemudian Anda perlu memutar halaman yang tersisa:
sumber
Berdasarkan jawaban oleh Benjamin di AskUbuntu, saya akan merekomendasikan menggunakan alat GUI yang disebut gscan2pdf .
Impor file pindai PDF ke gscan2pdf. Perhatikan bahwa file PDF non-gambar mungkin tidak berfungsi. Pemindaian baik-baik saja, jadi Anda tidak perlu khawatir.
Mungkin butuh beberapa saat tergantung pada ukuran dokumen. Tunggu sampai itu memuat.
Tekan Ctrl + A untuk memilih semua halaman lalu putar (Ctrl + Shift + C) jika perlu.
Pergi ke Alat >> Bersihkan . Pilih Tata Letak sebagai dua kali lipat dan # halaman keluaran = 2 .
Tekan OK dan tunggu sampai pekerjaan selesai.
Simpan file PDF. Selesai.
sumber
solusi moraes tidak bekerja untuk saya. Masalah utama adalah perhitungan x5 dan x6. Di sini offset harus dipertimbangkan, yaitu jika lowerLeft tidak di (0,0)
Jadi di sini adalah variasi lain, dengan adaptasi tambahan untuk menggunakan PyPDF2 dan python 3:
sumber