#!/usr/bin/ruby -w #========================================================= # pnm2djvu.rb - convierte todos los .pnm de un directorio # a DjVu, después los empaqueta en un archivo. # Usa el módulo Find #========================================================= # FJA - fja@neocipres.com Noviembre de 2013 #========================================================= require 'find' def buscar_archivo(dir, patron) lista = [] Find.find(dir) do |ruta| lista << ruta if File.basename(ruta) =~ /#{patron}/ && File.file?(ruta) end return lista.sort end begin raise if ARGV.size < 2 c = ARGV[0] nomF = ARGV[1].dup tipo = nomF.include?('.djvu') nomF << '.djvu' if !tipo archivos = buscar_archivo('.', '.pnm') print "\n Archivos de tipo .pnm: " print "\n", "="*80, "\n" archivos.each do |archivo| cmd = '' cmd << c << ' ' << archivo if c=='c44' if c=='cjb2' aout = archivo.sub('.pnm','') << '.djvu' cmd << c << ' ' << archivo << ' ' << aout end system(cmd) puts "\t #{archivo} " end print "="*80 print "\n\t => ",archivos.size," archivo#{"s" unless archivos.size==1} convertidos a djvu \n\n" print "\n Comienza el proceso de creación del libro" print "\n", "="*80, "\n" archivos = buscar_archivo('.', '.djvu') lista_djvu = ' ' cmd = '' archivos.each { |archivo| lista_djvu << archivo << ' ' } cmd << "djvm -c " << nomF << lista_djvu print "\n\t Creando el libro djvu ...\n\n" system(cmd) print "\n\t Generado el archivo: #{nomF} \n\n" rescue if ARGV.size < 2 print "\n\t", "="*70 print "\n\t Uso: pnm2djvu <compresor: c44 o cjb2> <archivo salida .djvu>\n" print "\n\t\t pnm2djvu es un enlace simbólico a pnm2djvu.rb " print "\n\t", "="*70, "\n\n" else puts "\n\t Error-> #{$!} \n\n" end end