imposition 0.8.8 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/impostor +8 -9
- data/lib/imposition.rb +10 -4
- data/lib/imposition/clases.rb +66 -33
- data/lib/imposition/metodos.rb +41 -42
- metadata +61 -6
data/bin/impostor
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
begin
|
3
|
-
require 'rubygems'
|
4
3
|
require 'imposition'
|
5
4
|
#METHODS
|
6
5
|
def input(nombre)
|
@@ -19,7 +18,7 @@ def input(nombre)
|
|
19
18
|
if split[2]=="" then
|
20
19
|
retorno["unidad"]="point"#default
|
21
20
|
else
|
22
|
-
retorno["unidad"]=input2alchemist(split[2])
|
21
|
+
retorno["unidad"]=Metodos.input2alchemist(split[2])
|
23
22
|
end
|
24
23
|
return retorno
|
25
24
|
else
|
@@ -97,7 +96,7 @@ end
|
|
97
96
|
#
|
98
97
|
entrada=ARGV.shift
|
99
98
|
$salida=ARGV.shift
|
100
|
-
check=Metodos.checksRun(
|
99
|
+
check=Metodos.checksRun()
|
101
100
|
if check.instance_of? Clases::Mensaje then
|
102
101
|
puts check.mensaje
|
103
102
|
exit
|
@@ -131,28 +130,28 @@ def recursivo(w_,h_,wP_,hP_,nX,nY,nPaginas,nPliegos,cuadernillos, preguntas)
|
|
131
130
|
exit
|
132
131
|
end
|
133
132
|
else
|
134
|
-
if !impostor.preguntas["par"].ok then
|
133
|
+
if impostor.preguntas["par"]!=nil and !impostor.preguntas["par"].ok then
|
135
134
|
puts impostor.preguntas["par"].mensaje
|
136
135
|
impostor.preguntas["par"].metodo(exigePar(nX))
|
137
136
|
recursivo(w_,h_,wP_,hP_,nX,nY,nPaginas,nPliegos,cuadernillos,impostor.preguntas)
|
138
|
-
elsif !impostor.preguntas["cXC"].ok then
|
137
|
+
elsif impostor.preguntas["cXC"]!=nil and !impostor.preguntas["cXC"].ok then
|
139
138
|
puts impostor.preguntas["cXC"].mensaje
|
140
139
|
impostor.preguntas["cXC"].metodo(input("cXC:"))
|
141
140
|
recursivo(w_,h_,wP_,hP_,nX,nY,nPaginas,nPliegos,cuadernillos,impostor.preguntas)
|
142
|
-
elsif !impostor.preguntas["escaladoH"].ok then
|
141
|
+
elsif impostor.preguntas["escaladoH"]!=nil and !impostor.preguntas["escaladoH"].ok then
|
143
142
|
puts !impostor.preguntas["escaladoH"].mensaje
|
144
143
|
impostor.preguntas["escaladoH"].metodo(escalado(impostor.preguntas["escaladoH"].tipo))
|
145
144
|
impostor.preguntas["escaladoH"].ok=true
|
146
145
|
recursivo(w_,h_,wP_,hP_,nX,nY,nPaginas,nPliegos,cuadernillos,impostor.preguntas)
|
147
|
-
elsif !impostor.preguntas["escaladoV"].ok then
|
146
|
+
elsif impostor.preguntas["escaladoV"]!=nil and !impostor.preguntas["escaladoV"].ok then
|
148
147
|
puts impostor.preguntas["escaladoV"].mensaje
|
149
148
|
impostor.preguntas["escaladoV"].metodo(escalado(impostor.preguntas["escaladoV"].tipo))
|
150
149
|
recursivo(w_,h_,wP_,hP_,nX,nY,nPaginas,nPliegos,cuadernillos,impostor.preguntas)
|
151
|
-
elsif !impostor.preguntas["todasPag"].ok then
|
150
|
+
elsif impostor.preguntas["todasPag"]!=nil and !impostor.preguntas["todasPag"].ok then
|
152
151
|
puts impostor.preguntas["todasPag"].mensaje
|
153
152
|
impostor.preguntas["todasPag"].metodo(todasPag(impostor.preguntas["todasPag"].nPliegos, impostor.preguntas["todasPag"].nX, impostor.preguntas["todasPag"].nY, impostor.preguntas["todasPag"].caben, impostor.preguntas["todasPag"].tiene))
|
154
153
|
recursivo(w_,h_,wP_,hP_,nX,nY,nPaginas,nPliegos,cuadernillos,impostor.preguntas)
|
155
|
-
elsif !impostor.preguntas["reducir"].ok then
|
154
|
+
elsif impostor.preguntas["reducir"]!=nil and !impostor.preguntas["reducir"].ok then
|
156
155
|
puts impostor.preguntas["reducir"].mensaje
|
157
156
|
impostor.preguntas["reducir"].metodo(reducirUltimo(impostor.preguntas["reducir"].cuadernillosPorCostura, impostor.preguntas["reducir"].paginasSobran, impostor.preguntas["reducir"].nCuad, impostor.preguntas["reducir"].sobranMenos))
|
158
157
|
recursivo(w_,h_,wP_,hP_,nX,nY,nPaginas,nPliegos,cuadernillos,impostor.preguntas)
|
data/lib/imposition.rb
CHANGED
@@ -1,16 +1,22 @@
|
|
1
|
-
#
|
1
|
+
#GEMAS
|
2
|
+
require 'rubygems'
|
3
|
+
require 'uuidtools'
|
4
|
+
require 'fileutils'
|
5
|
+
require 'alchemist'
|
6
|
+
#Clases
|
2
7
|
require 'imposition/clases'
|
3
8
|
require 'imposition/metodos'
|
4
9
|
#
|
10
|
+
#
|
5
11
|
$requerimientos=Hash.new
|
6
12
|
$requerimientos["pdflatex"]="pdflatex"
|
7
13
|
$requerimientos["pdfinfo"]="pdfinfo"
|
8
14
|
#
|
9
|
-
work="/tmp
|
15
|
+
$work="/tmp"
|
10
16
|
#
|
11
|
-
check=Metodos.checksCompile(
|
17
|
+
check=Metodos.checksCompile()
|
12
18
|
if check.instance_of? Clases::Mensaje then
|
13
19
|
puts check.mensaje
|
14
|
-
exit
|
20
|
+
exit
|
15
21
|
end
|
16
22
|
|
data/lib/imposition/clases.rb
CHANGED
@@ -79,10 +79,14 @@ class Mix
|
|
79
79
|
end
|
80
80
|
|
81
81
|
class Mensaje
|
82
|
-
attr_reader :level, :mensaje
|
83
|
-
def initialize(
|
84
|
-
|
85
|
-
|
82
|
+
attr_reader :id, :level, :mensaje
|
83
|
+
def initialize(*args)
|
84
|
+
if args.size==1 then
|
85
|
+
@id=args[0]
|
86
|
+
elsif args.size==2 then
|
87
|
+
@level=args[0] #level 1=info, 2=warn, 3=error
|
88
|
+
@mensaje=args[1]
|
89
|
+
end
|
86
90
|
end
|
87
91
|
def to_s
|
88
92
|
if @level==1 then
|
@@ -92,37 +96,36 @@ class Mensaje
|
|
92
96
|
elsif @level==3 then
|
93
97
|
@retorno="ERROR: "
|
94
98
|
end
|
95
|
-
@retorno+=@mensaje
|
99
|
+
@retorno+=@mensaje.to_s
|
96
100
|
return @retorno
|
97
101
|
end
|
98
102
|
def ==(msg)
|
99
|
-
return
|
103
|
+
return @id==msg.id
|
100
104
|
end
|
101
105
|
end
|
102
106
|
#
|
103
107
|
class MensajeDato < Mensaje
|
104
108
|
attr_reader :tipo, :numero
|
105
|
-
def initialize(level,
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
end
|
109
|
+
def initialize(level,tipo,numero)
|
110
|
+
@level=level
|
111
|
+
@tipo=tipo
|
112
|
+
@numero=numero
|
113
|
+
dd=deducirMensaje(tipo,level,numero)
|
114
|
+
@id=dd[0]
|
115
|
+
@mensaje=dd[1]
|
116
|
+
super(level, @mensaje)
|
117
|
+
end
|
115
118
|
def deducirMensaje(tipo, level, numero)
|
116
119
|
if tipo=="horizontal" then
|
117
120
|
if level==1 then#info
|
118
121
|
if numero==1 then
|
119
122
|
return "se calcula la cantidad de paginas por pliego horizontalmente en base al ancho del pliego y el de la pagina"
|
120
123
|
elsif numero==2 then
|
121
|
-
return "se calcula el ancho del pliego en base al de la pagina y la cantidad de paginas por pliego horizontalmente"
|
124
|
+
return [2,"se calcula el ancho del pliego en base al de la pagina y la cantidad de paginas por pliego horizontalmente"]
|
122
125
|
elsif numero==3 then
|
123
|
-
return "se calcula el ancho de la pagina en base al del pliego y la cantidad de paginas por pliego horizontalmente"
|
126
|
+
return [12,"se calcula el ancho de la pagina en base al del pliego y la cantidad de paginas por pliego horizontalmente"]
|
124
127
|
elsif numero==4 then
|
125
|
-
return "se toma el ancho real de la pagina"
|
128
|
+
return [1,"se toma el ancho real de la pagina"]
|
126
129
|
end
|
127
130
|
elsif level==3 then#error
|
128
131
|
if numero==1 then
|
@@ -142,11 +145,11 @@ class MensajeDato < Mensaje
|
|
142
145
|
if numero==1 then
|
143
146
|
return "se calcula la cantidad de paginas por pliego verticalmente en base al alto del pliego y el de la pagina"
|
144
147
|
elsif numero==2 then
|
145
|
-
return "se calcula el alto del pliego en base al de la pagina y la cantidad de paginas por pliego verticalmente"
|
148
|
+
return [4,"se calcula el alto del pliego en base al de la pagina y la cantidad de paginas por pliego verticalmente"]
|
146
149
|
elsif numero==3 then
|
147
|
-
return "se calcula el alto de la pagina en base al del pliego y la cantidad de paginas por pliego verticalmente"
|
150
|
+
return [11,"se calcula el alto de la pagina en base al del pliego y la cantidad de paginas por pliego verticalmente"]
|
148
151
|
elsif numero==4 then
|
149
|
-
return "se toma el alto real de la pagina"
|
152
|
+
return [3,"se toma el alto real de la pagina"]
|
150
153
|
end
|
151
154
|
elsif level==3 then#error
|
152
155
|
if numero==1 then
|
@@ -166,9 +169,9 @@ class MensajeDato < Mensaje
|
|
166
169
|
if numero==1 then
|
167
170
|
return "se calcula el numero de paginas a partir del numero de pliegos y de la cantidad de paginas por pliego"
|
168
171
|
elsif numero==2 then
|
169
|
-
return "se calcula el numero de pliegos a partir del numero de paginas y de la cantidad de paginas por pliego"
|
172
|
+
return [6,"se calcula el numero de pliegos a partir del numero de paginas y de la cantidad de paginas por pliego"]
|
170
173
|
elsif numero==3 then
|
171
|
-
return "se usan todas las paginas del pdf"
|
174
|
+
return [5,"se usan todas las paginas del pdf"]
|
172
175
|
end
|
173
176
|
elsif level==3 then
|
174
177
|
if numero==1 then
|
@@ -195,9 +198,6 @@ class MensajeMedida < Mensaje
|
|
195
198
|
@mensaje=deducirMensaje(level, tipo, args)
|
196
199
|
super(level, @mensaje)
|
197
200
|
end
|
198
|
-
def ==(msg)
|
199
|
-
return (msg.instance_of? MensajeMedida and @level==msg.level and @tipo==msg.tipo) #!args ?
|
200
|
-
end
|
201
201
|
def deducirMensaje(level, tipo, args)
|
202
202
|
if tipo=="horizontal" then
|
203
203
|
if level==3 then
|
@@ -221,40 +221,68 @@ class MensajeTiempo < Mensaje
|
|
221
221
|
@tiempo=tiempo
|
222
222
|
@level=1
|
223
223
|
if tipo==1 then#booklets
|
224
|
+
@id=14#fijo
|
224
225
|
@mensaje="::::::::::::booklets:::::::::::::\n"#blink blink
|
225
226
|
@mensaje+="booklets: "
|
226
227
|
elsif tipo==2 then
|
228
|
+
@id=9#fijo
|
227
229
|
@mensaje="::::::::::::cut&Stack::::::::::::\n"#blink blink
|
228
230
|
@mensaje+="cut&Stack: "
|
229
231
|
end
|
230
232
|
@mensaje+=@tiempo.to_s+" segundos"
|
231
|
-
@tiempo=tiempo
|
232
233
|
super(level,mensaje)
|
233
234
|
end
|
234
|
-
def ==(msg)
|
235
|
-
return (msg.instance_of? MensajeTiempo and @tipo==msg.tipo)
|
236
|
-
end
|
237
235
|
end
|
238
236
|
#
|
239
237
|
class MensajeLadoLado < Mensaje
|
240
238
|
attr_reader :nP
|
241
239
|
def initialize(nP)
|
240
|
+
@id=7#fijo
|
242
241
|
@nP=nP
|
243
242
|
@mensaje="como son cuadernillos lado y lado los pliegos no pueden ser impares, se toman #{@nP}+1"
|
244
243
|
super(1,@mensaje)
|
245
244
|
end
|
246
|
-
|
247
|
-
|
245
|
+
end
|
246
|
+
#
|
247
|
+
class MensajeVars < Mensaje
|
248
|
+
def initialize(*args)
|
249
|
+
if args.size==0 then
|
250
|
+
super(8)#clásico
|
251
|
+
elsif args.size==2 then
|
252
|
+
@id=8
|
253
|
+
super(args[0],args[1])
|
254
|
+
end
|
255
|
+
end
|
256
|
+
end
|
257
|
+
#
|
258
|
+
class MensajeMultiplo < Mensaje
|
259
|
+
def initialize(level, mensaje)
|
260
|
+
@id=10
|
261
|
+
super(level,mensaje)
|
262
|
+
end
|
263
|
+
end
|
264
|
+
#TODO DRY!
|
265
|
+
class MensajeBooklets < Mensaje
|
266
|
+
def initialize(level,mensaje)
|
267
|
+
@id=13
|
268
|
+
super(level,mensaje)
|
248
269
|
end
|
249
270
|
end
|
250
271
|
|
251
272
|
class Pregunta
|
252
273
|
attr_accessor :ok, :yn, :mensaje
|
274
|
+
attr_reader :ide
|
253
275
|
def initialize(mensaje)
|
254
276
|
@mensaje=mensaje
|
255
277
|
end
|
256
278
|
def metodo()
|
257
279
|
end
|
280
|
+
def ==(question)
|
281
|
+
if question==nil then
|
282
|
+
return false
|
283
|
+
end
|
284
|
+
return @ide==question.ide
|
285
|
+
end
|
258
286
|
end
|
259
287
|
#
|
260
288
|
#TODO sugerencia si + o -
|
@@ -288,6 +316,11 @@ class PreguntaEscalado < Pregunta
|
|
288
316
|
def initialize(tipo)
|
289
317
|
@mensaje="en duro"
|
290
318
|
@tipo=tipo
|
319
|
+
if @tipo=="horizontal" then
|
320
|
+
@ide=1
|
321
|
+
elsif @tipo=="vertical" then
|
322
|
+
@ide=2
|
323
|
+
end
|
291
324
|
end
|
292
325
|
def metodo(yn)
|
293
326
|
@yn=yn
|
data/lib/imposition/metodos.rb
CHANGED
@@ -1,9 +1,4 @@
|
|
1
1
|
module Metodos
|
2
|
-
|
3
|
-
require 'rubygems'
|
4
|
-
require 'uuidtools'
|
5
|
-
require 'fileutils'
|
6
|
-
require 'alchemist'
|
7
2
|
|
8
3
|
#WORK
|
9
4
|
def funcionar(w_,h_,wP_,hP_,nX,nY,nPaginas,nPliegos,cuadernillos,preguntas)
|
@@ -11,21 +6,21 @@ def funcionar(w_,h_,wP_,hP_,nX,nY,nPaginas,nPliegos,cuadernillos,preguntas)
|
|
11
6
|
pdfinfo(impostor, $temp)
|
12
7
|
retorno=validacion(impostor, preguntas)
|
13
8
|
if retorno.preguntasOk then
|
14
|
-
retorno.mensajes.push(Clases::
|
9
|
+
retorno.mensajes.push(Clases::MensajeVars.new(1,impostor.to_s))
|
15
10
|
if impostor.cuadernillos then
|
16
11
|
retorno.mensajes.push(imponerBooklet(impostor, $temp))
|
17
12
|
end
|
18
13
|
retorno.mensajes.push(imponerStack(impostor, $temp))
|
19
14
|
#lo devuelvo
|
20
|
-
if $salida
|
21
|
-
entrada
|
15
|
+
if $salida == nil then
|
16
|
+
$salida=$entrada
|
22
17
|
end
|
23
|
-
FileUtils.mv($dir+"/"+"cutStack.pdf",
|
18
|
+
FileUtils.mv($dir+"/"+"cutStack.pdf", $salida)
|
24
19
|
end
|
25
20
|
return retorno
|
26
21
|
end
|
27
22
|
|
28
|
-
def checksCompile(
|
23
|
+
def checksCompile()
|
29
24
|
#paquetes
|
30
25
|
$requerimientos.each do |k,v|
|
31
26
|
`which #{v}`
|
@@ -35,38 +30,42 @@ def checksCompile(requerimientos, work)
|
|
35
30
|
end
|
36
31
|
#archivos
|
37
32
|
#probamos que exista el directorio de trabajo
|
38
|
-
if File.exists?(work) then
|
33
|
+
if File.exists?($work) then
|
39
34
|
#y que sea escribible
|
40
|
-
if File.writable?(work) and File.writable_real?(work) then
|
35
|
+
if File.writable?($work) and File.writable_real?($work) then
|
36
|
+
$work+="/impostor"
|
37
|
+
if !File.exists?($work) then
|
38
|
+
Dir.mkdir($work)
|
39
|
+
end
|
41
40
|
#creo mi directorio
|
42
|
-
$dir
|
41
|
+
$dir=$work+"/"+UUIDTools::UUID.random_create
|
43
42
|
Dir.mkdir($dir)
|
44
43
|
$codeDir = Dir.pwd
|
45
44
|
else
|
46
|
-
|
45
|
+
return Clases::Mensaje.new(3,"el directorio de trabajo "+$work+" no se puede escribir")
|
47
46
|
end
|
48
47
|
else
|
49
|
-
|
48
|
+
return Clases::Mensaje.new(3,"el directorio de trabajo "+$work+ " no existe")
|
50
49
|
end
|
51
50
|
end
|
52
51
|
|
53
|
-
def checksRun(
|
52
|
+
def checksRun()
|
54
53
|
#la entrada
|
55
|
-
if entrada != nil then
|
56
|
-
if File.file?(entrada) then
|
57
|
-
if File.owned?(entrada) then
|
54
|
+
if $entrada != nil then
|
55
|
+
if File.file?($entrada) then
|
56
|
+
if File.owned?($entrada) then
|
58
57
|
busca = /.*(.pdf)/
|
59
|
-
if busca.match(File.basename(entrada)) then
|
60
|
-
$temp=$dir+"/"+File.basename(entrada)#me lo llevo
|
61
|
-
FileUtils.cp(entrada, $temp)
|
58
|
+
if busca.match(File.basename($entrada)) then
|
59
|
+
$temp=$dir+"/"+File.basename($entrada)#me lo llevo
|
60
|
+
FileUtils.cp($entrada, $temp)
|
62
61
|
else
|
63
|
-
return Clases::Mensaje.new(3,"el archivo "
|
62
|
+
return Clases::Mensaje.new(3,"el archivo "+$entrada+" no es pdf")
|
64
63
|
end
|
65
64
|
else
|
66
|
-
return Clases::Mensaje.new(3,"el archivo "
|
65
|
+
return Clases::Mensaje.new(3,"el archivo "+$entrada+" no es mío")
|
67
66
|
end
|
68
67
|
else
|
69
|
-
return Clases::Mensaje.new(3
|
68
|
+
return Clases::Mensaje.new(3,$entrada+" no es un archivo")
|
70
69
|
end
|
71
70
|
else
|
72
71
|
return Clases::Mensaje.new(3,"no ha especificado archivo a imponer")
|
@@ -85,9 +84,19 @@ def checksRun(entrada, salida)
|
|
85
84
|
end
|
86
85
|
end
|
87
86
|
|
87
|
+
#TODO validar que unidad exista en alchemist
|
88
|
+
def input2alchemist(unidad)
|
89
|
+
if unidad=="pt" or unidad=="pts" then
|
90
|
+
return "point"
|
91
|
+
elsif unidad=="PT" or unidad=="bp" then
|
92
|
+
return "printer_point"
|
93
|
+
else
|
94
|
+
return unidad.downcase
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
88
98
|
#########
|
89
|
-
module_function :funcionar, :checksCompile, :checksRun
|
90
|
-
#########
|
99
|
+
module_function :funcionar, :checksCompile, :checksRun, :input2alchemist
|
91
100
|
|
92
101
|
def self.pdfinfo(impostor, temp)
|
93
102
|
Dir.chdir($dir)
|
@@ -370,17 +379,6 @@ def self.unaDentroDeOtra(paginasReal, paginasEnCuadernillo, inicio, fin)
|
|
370
379
|
return arreglo
|
371
380
|
end
|
372
381
|
|
373
|
-
#TODO validar que unidad exista en alchemist
|
374
|
-
def self.input2alchemist(unidad)
|
375
|
-
if unidad=="pt" or unidad=="pts" then
|
376
|
-
return "point"
|
377
|
-
elsif unidad=="PT" or unidad=="bp" then
|
378
|
-
return "printer_point"
|
379
|
-
else
|
380
|
-
return unidad.downcase
|
381
|
-
end
|
382
|
-
end
|
383
|
-
|
384
382
|
def self.redondear(n)#por BUG de alchemist (ruby 1.9 tiene round(3))
|
385
383
|
(n*1000).round/1000
|
386
384
|
end
|
@@ -451,11 +449,11 @@ def self.validacion(impostor, preguntas)
|
|
451
449
|
return Clases::RespuestaImpostor.new(preguntas,mensajes)
|
452
450
|
else
|
453
451
|
impostor.cuadernillosPorCostura=preguntas["cXC"].cXC
|
454
|
-
end
|
452
|
+
end
|
455
453
|
impostor.nX=impostor.nX/2
|
456
454
|
impostor.w=impostor.w*2
|
457
455
|
impostor.w_["numero"]=impostor.w
|
458
|
-
mensajes.push(Clases::
|
456
|
+
mensajes.push(Clases::MensajeBooklets.new(1, "como imponemos en cuadernillos, tomamos la mitad de paginas horizontalmente y una pagina del doble de ancho"))
|
459
457
|
end
|
460
458
|
#HORIZONTALMENTE
|
461
459
|
if impostor.w!=0.point then
|
@@ -485,7 +483,7 @@ def self.validacion(impostor, preguntas)
|
|
485
483
|
preguntas["escaladoH"]=Clases::PreguntaEscalado.new("horizontalmente")
|
486
484
|
else
|
487
485
|
if preguntas["escaladoH"].yn then
|
488
|
-
impostor.w=(impostor.wP.to_f/impostor.nX).send(impostor.wP_["unidad"])
|
486
|
+
impostor.w=(impostor.wP.to_f/(impostor.nX*(impostor.cuadernillos ? 2 : 1))).send(impostor.wP_["unidad"])#divido en 2 porque ya lo multipliqué
|
489
487
|
impostor.w_["numero"]=impostor.w
|
490
488
|
impostor.w_["unidad"]=impostor.wP_["unidad"]
|
491
489
|
mensajes.push(Clases::MensajeDato.new(1, "horizontal", 3))#info
|
@@ -504,6 +502,7 @@ def self.validacion(impostor, preguntas)
|
|
504
502
|
if impostor.cuadernillos then
|
505
503
|
impostor.w=impostor.w*2
|
506
504
|
impostor.w_["numero"]=impostor.w
|
505
|
+
puts impostor.w
|
507
506
|
end
|
508
507
|
impostor.w_["unidad"]=impostor.size["unidad"]
|
509
508
|
mensajes.push(Clases::MensajeDato.new(1, "horizontal", 4))#info
|
@@ -691,7 +690,7 @@ def self.validacion(impostor, preguntas)
|
|
691
690
|
#nPaginas multiplo de nX*nY
|
692
691
|
if impostor.nX*impostor.nY!=0 and impostor.nPaginas%(impostor.nX*impostor.nY)!=0 then
|
693
692
|
impostor.nPaginas=(impostor.nPaginas/(impostor.nX*impostor.nY)+1)*(impostor.nX*impostor.nY)
|
694
|
-
mensajes.push(Clases::
|
693
|
+
mensajes.push(Clases::MensajeMultiplo.new(1, "El pdf tiene #{impostor.nPaginasReal} paginas, que impuestas en #{impostor.nX}x#{impostor.nY} son #{impostor.nPaginas} paginas"))
|
695
694
|
end
|
696
695
|
#TODO ¿ROTAR? si se gasta menos espacio por pliego o en total da menos pliegos
|
697
696
|
return Clases::RespuestaImpostor.new(preguntas,mensajes)
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: imposition
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 59
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 9
|
9
|
+
- 0
|
10
|
+
version: 0.9.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Numerico
|
@@ -16,8 +16,63 @@ bindir: bin
|
|
16
16
|
cert_chain: []
|
17
17
|
|
18
18
|
date: 2012-08-16 00:00:00 Z
|
19
|
-
dependencies:
|
20
|
-
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: alchemist
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
version: "0"
|
32
|
+
type: :runtime
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: uuidtools
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
43
|
+
segments:
|
44
|
+
- 0
|
45
|
+
version: "0"
|
46
|
+
type: :runtime
|
47
|
+
version_requirements: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: fileutils
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
hash: 3
|
57
|
+
segments:
|
58
|
+
- 0
|
59
|
+
version: "0"
|
60
|
+
type: :runtime
|
61
|
+
version_requirements: *id003
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: test/unit
|
64
|
+
prerelease: false
|
65
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
hash: 3
|
71
|
+
segments:
|
72
|
+
- 0
|
73
|
+
version: "0"
|
74
|
+
type: :development
|
75
|
+
version_requirements: *id004
|
21
76
|
description: nUp & booklets
|
22
77
|
email: webmaster@numerica.cl
|
23
78
|
executables:
|