Come combinare due PDF in Mac OS X

E’ curioso: Mac OS X non include un tool per la scansione automatica di documenti fronte-retro, usando uno scanner con alimentatore di fogli solo-fronte.

L’unica soluzione che mi era venuta in mente consisteva nel fotocopiare le pagine pari (cioè il retro), infilarle manualmente fra una pagina dispari e l’altra, e scansionare il tutto. Poi però avrei dovuto di nuovo separare la risma e gettare le pagine pari.

Ho trovato un modo per automatizzare il processo, eccolo qui:

Assumo di avere due file: fronte.pdf che contiene la prima pagina e tutte le pagine “fronte”, cioè quelle dispari: un file retro.pdf che contiene tutte le pagine pari. Queste però sono state scansionate infilando il documento dall’altro lato nello scanner, quindi la prima pagina sarà l’ultimo retro, la seconda sarà il penultimo, e così via.

Ci sono quindi due operazioni da fare: invertire l’ordine delle pagine in retro.pdf e poi combinare i due PDF in un unico pdf.

Per l’operazione di inversione delle pagine ho scaricato e installato PDFTK che non offre un’interfaccia grafica ma solo da prompt dei comandi.

Ho creato questo script, salvandolo come reverse-pdf.rb:

#!/usr/bin/ruby

if __FILE__ == $0
 puts "Check that pdftk is installed"

 if ARGV.length != 2
 puts "Syntax: #{__FILE__} pdf_to_reverse.pdf <page count>"
 exit
 end

 pdf = ARGV[0]
 reversed_pdf = pdf.gsub(/\.pdf/i, "_reversed.pdf")

 page_count = ARGV[1]

 `pdftk #{pdf} cat #{page_count}-#{1} output #{reversed_pdf}`
end

Va invocato con: ./reverse-pdf.rb retro.pdf 55   dove 55 è il numero dell’ultima pagina.

Lo script creerà, nello stesso folder, un retro-reversed.pdf.

Per la seconda parte del lavoro, ho trovato questo script, che ho chiamato combine-pdf.rb:

#!/usr/bin/ruby

if __FILE__ == $0
 puts "Run this on os x to shuffle two pdf's, where the
 even pages are already reversed (reverse them with other script)"

 if ARGV.length != 3
 puts "Syntax: #{__FILE__} odds.pdf reversed_evens.pdf output.pdf"
 exit
 end

 odds_pdf = ARGV[0]
 reversed_evens_pdf = ARGV[1]
 output_pdf = ARGV[2]

 # obviously, only works on os x. I didn't see an easy way to combine pdf's
 # in pdftk or other tools I searched for
 `python '/System/Library/Automator/Combine PDF Pages.action/Contents/Resources/join.py' --output '#{output_pdf}' --shuffle '#{odds_pdf}' '#{reversed_evens_pdf}'`
end

Questo simpatico script utilizza l’Automator interno di Apple in modalità shuffle (che in italiano è stata tradotta con l’orrendo “casuale”) che appunto prende, in ordine, una pagina alternata da ogni documento per combinare il pdf in uscita.

Lo si invoca con: ./combine-pdf.rb fronte.pdf retro_reversed.pdf  combinato.pdf

Annunci
Questa voce è stata pubblicata in Senza categoria. Contrassegna il permalink.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...