Blog multi-temático de Antonio Castro

opinión, literatura, ciencia, tecnología, ciencia ficción, autoedición, política, ateismo, actualidad

temas de ciberdroide.com

Diseñando una portada completa en PDF para publicar un libro en Lulú. (II)

Sé que esto interesa solo a una minoría, (escritores que además son autoeditores, y que además usan ) pero seguramente esa minoría me agradecerá mucho esto.

Para otros (la mayoría) esto debe parecer una interminable historia.  Primero publique esto:
Diseñando una portada completa en para publicar un libro en Lulú.
https://www.ciberdroide.com/wordpress/?p=473

Luego me enfadé bastante y escribí esto otro.

Trato discriminatorio de Lulú con los usuarios de Software Libre.
https://www.ciberdroide.com/wordpress/?cat=6

El problema no es que Lulú tenga intención alguna de discriminar, pero el resultado nos discrimina a los usuarios de software libre. ¿Va Lulú a proporcionar una herramienta o una información que podría ser usada para generar portadas que pueden ser utilizadas en servicios de impresión bajo demanda distintos de Lulú? Ignoro sinceramente cual es motivo real, pero Lulú no ofrece una ayuda que podría ofrecer si quisiera. Eso en el caso de las portadas de una sola pieza nos perjudica especialmente a los usuarios de Software Libre. Pretendo acabar con eso en este artículo.

Dije que seguiría investigando, y por fin acabo de recibir mi primer libro generado íntegramente con software libre. Se da la circunstancia de que no sé de nadie que lograra generar el PDF de una portada de una sola pieza usando Software Libre.  Es un tema que lleva coleando años, y yo he insistido y he mareado a Lulú para intentar que me dijera como lograrlo. Las ayudas de Lulú no fueron tales, no sirvieron para nada. En lugar de orientarme en la dirección correcta me hicieron perder mucho tiempo. Después de muchos meses y de toda clase de reclamaciones de las cuales ya hablé, Lo último que hizo Lulú fue mandar analizar mi PDF por un experto en sistemas de impresión que se limitó a decirme que estaba mal sin explicar que estaba mal ni como solucionarlo y que contratara un servicio de diseño de portadas. Ese es un servicio que no necesito, porque el diseño ya lo tengo hecho con Gimp y lo que faltaba era pasarlo a un PDF aceptable por el sistema de impresión de Lulú. El Wizard de Lulú daba por buenos PDFs que luego fallaban en el sistema de impresión ocasionando retrasos y gastos. Para Lulú no ayudar a sus usuarios no parece un drama. De momento tiene un crecimiento en usuarios enorme. Son usuarios que en su mayoría hacen autoconsumo de unos pocos ejemplares de sus obras, y cuantas más pruebas de impresión tengan que hacer, mejor para Lulú.

No ha sido nada fácil dar con una solución, y esta no es trivial. Ni siquiera puedo explicar totalmente porqué la solución encontrada funciona. Hacer pruebas de impresión no sale gratis y pese a todo por fin mi libro ha llegado con la portada correcta. Lo acabo de conseguir justo ahora que Lulú sube sus precios en torno a un 40% o incluso a un 60% para algunos casos. Los precios finales de los libros resultan ahora muy superiores al precio de mercado.

La solución que yo he implementado puede ser válida no solo para el sistema de autoedición de Lulú, sino también para otros sistemas de autoedición o de impresión bajo demanda.

Lo que comentamos en el capítulo anterior del mismo título solo servía para los que tuvieran Adbobe Photoshop, y que no necesitan nada de lo que trato en este artículo, pero se da la circunstancia de que es un programa nada barato. El único programa que ha recibido las bendiciones de Lulú para generar portadas de una sola pieza es Adobe Photoshop. El resto son sugerencias en clave de … busque usted por su cuenta que Internet es muy grande y seguro que hay algo. Las recomendaciones de la FAQ de Lulú son muy poco útiles en este caso para los que usamos software libre.

Recomendación enérgica de usar Adobe Acrobat para convertir a PDF

La alternativa es usar Gimp que es igual de bueno y es gratuito. Todo se reduce a diseñar la portada con Gimp y luego pasarlas a PDF con la pequeña utilidad que he desarrollado. Las letras de la portada también las puedes colocar en la imagen usando Gimp. Solo debes asegurarte de usar una resolución alta. Lo ideal sería 1837×2775 pixels para portada y contraportada de 6″x9″. Tal como ya se explicó en el artículo anterior. No hay problema en usar resoluciones superiores. Nosotros en este artículo usaremos un programa que adaptará los tamaños de las imágenes de forma automática.

La cuestión es que se necesita generar un PDF, pero no vale cualquier PDF. La ayuda de Lulú es perfectamente inútil, ni siquiera los técnicos han podido ofrecerme una solución concreta y genérica como la que yo ofrezco ahora.

Se han limitado a repetir lo que viene en las FAQs. Pero tener el suficiente control sobre los PDFs que generan una gran variedad de programas para que generen algo que sea aceptado por Lulú y, no es fácil de conseguir. La mayoría de esos programas ofrecen documentos PDFs perfectamente válidos para visualizarlos o imprimirlos en casa, pero inútiles para el sistema de impresión.

No voy a volver a referirme a toda la interminable historia de tira y afloja con estos temas entre Lulú y yo. Mucha gente cree que solo basta con pasar a PDF y no es cierto.He probado un montón de ellos.

No sé si interesa lo que viene a continuación. Se trata de explicar como di con la solución, pero creo que después de haberme mostrado tan crítico con Lulú era necesario explicar las dificultades que hacen que la gente no haya sido capaz de resolver este problema. A mí me ha costado mucho, pero si solo le interesa la solución final puede saltarse toda esta parte e ir directamente al final donde presento la receta en forma de programa en lenguaje Python.

Cómo di con la solución:

No me ha dado la gana de gastarme un pastón en comprar Adobe Photoshop para la tontería de obtener un PDF. Gimp es tan bueno como Photoshop para el diseño y el retoque fotográfico. Tampoco me ha dado la gana de contratar un servicio de pago ni recurrir una y otra vez a los mismos amigos para que pasen mis imágenes a PDF con su Adobe Photoshop. Empecé diseñando una portada de dos piezas con el wizard de Lulú. Hay que subir una portada y una contraportada, y no te deja subir el lomo. (Si permitiera subir el lomo no estaríamos hablando de esto, ya estaría todo).

Lulú coloca un lomo permitiendo escribir algo en él. Los resultados han sido decepcionantes, pero una vez tienes esa portada puedes descargarte el PDF generado por Lulú para la portada de tu libro y ese PDF generado por Lulú me dio varias pistas. Puedes pasar ese PDF a JPG mediante convert de . (disponible gratuitamente para windows y para Linux).  Es un programa muy potente que se usa en forma de comandos. El manual lo tenéis aquí.

http://www.imagemagick.org/script/convert.php

Vamos a aplicar convert de dos formas sobre ese fichero:

convert 4572061_cover.pdf 4572061_cover.jpg

convert -density 300 4572061_cover.pdf 4572061_cover_2.jpg

En el primer caso no hemos especificado nada a convert y ha usado por defecto la densidad de 72 dpi.

(dots Per Inch) Puntos por pulgada.

En el segundo caso le decimos a convert que use 300 dpi.

Puedes usar otro programa de software libre la Linux llamado «pdfedit» para abrir el fichero PDF generado por Lulú.

pdfedit 4572061_cover.pdf

Verás que no es una sola imagen.  Es un PDF con las imágenes de contraportada, lomo y portada, y algunos elementos más,  para letreros logos, etc. El caso es que pdfedit puede hacer muy pocas cosas, pero te permite descargar las imágenes de contraportada, lomo y portada. Lo malo es que las genera en un formato en el cual se ha perdido información de la imagen. Yo las baje en BMP, aunque da igual el formato, se trataba de verificar el tamaño de la imagen con el programa identify de ImageMagik.

Usando identify  de ImageMagick vemos lo siguiente:

4572061_cover.jpg JPEG 979×666 979×666+0+0 DirectClass 8-bit 77.7559kb
4572061_cover_2.jpg JPEG 4080×2775 4080×2775+0+0 DirectClass 8-bit 598.443kb 0.930u 0:02
4572061_cover.pdf[1] PDF 979×666 979×666+0+0 DirectClass 16-bit 1.86549mb
lomo.bmp[2] BMP 100×666 100×666+0+0 DirectClass 8-bit 195.17kb
portada.bmp[3] BMP 441×646 441×646+0+0 DirectClass 8-bit 835.311kb

Vemos que solo la imagen guardada con la opción de densidad 300 dpi ha conservado toda la información. Los demás ficheros BMP y JPG son de pequeño tamaño y si los visualizamos aplicando un zoom sobre algún pequeño detalle veremos la enorme diferencia que supone trabajar a 72 dpi o a 300 dpi.

Yo hasta hace poco visualizaba los PDF con ayuda de XPDF y cuando miraba un PPDF generado mediante convert no notaba nada raro. Eso es porque XPDF optimiza la representación del PDF en pantalla. Empecé a darme cuenta de que algo no estaba bien cuando empecé a usar «KGhostView». Este otro visor te muestra como queda la imagen en la página del documento. Cosa esencial. Ahora puedo decirlo, pero no era algo evidente.

El paquete ImageMagick trae varios programas. Uno de ellos es el programa convert del que ya hemos hablado, y otro es el programa identify del que hablaremos ahora.

Mirando el PDF generado por Lulú  4572061_cover.pdf que tiene varios elementos, me dí cuenta que el tamaño de la página del documento coincidía con el tamaño de la imagen. Intenté forzar eso probando varias cosas con OpenOffice, y con pdfedit sin éxito. Yo conservo una portada de pieza única que me hizo un amigo con su Adobe Photoshop. Cuando a ese PDF lo escaneé con el programa identify y la opción -verbose  me decía que tenía  72 dpi, y me daba un número de píxels que no corresponden con el contenido del PDF.

Lo mismo puede apreciarse si miramos con el mismo programa identify y la opción -verbose el PDF entregado por Lulú.

identify -verbose 4572061_cover.pdf

Image: 4572061_cover.pdf
Format: PDF (Portable Document Format)
Class: DirectClass
Geometry: 979×666+0+0
Type: TrueColor
Endianess: Undefined
Colorspace: RGB
Depth: 8-bit
Channel depth:
Red: 8-bit
Green: 8-bit
Blue: 8-bit
Channel statistics:
Red:
Min: 0 (0)
Max: 255 (1)
Mean: 229.039 (0.898194)
Standard deviation: 39.529 (0.155016)
Green:
Min: 0 (0)
Max: 255 (1)
Mean: 195.795 (0.767823)
Standard deviation: 43.556 (0.170808)
Blue:
Min: 0 (0)
Max: 255 (1)
Mean: 125.17 (0.490862)
Standard deviation: 75.6182 (0.296542)
Rendering intent: Undefined
Resolution: 72×72
Units: Undefined
Filesize: 1.86549mb
Interlace: None
Background color: white
Border color: rgb(223,223,223)
Matte color: grey74
Transparent color: black
Page geometry: 979×666+0+0
Dispose: Undefined
Iterations: 0
Compression: Undefined
Orientation: Undefined
Pdf:HiResBoundingBox: 979.14×666+0+0
Pdf:Version: PDF-1.5
Signature: 21fece2ed231494aca018ce1a18898502124d3aff60328f393022f7535e3fd19
Tainted: False
Version: ImageMagick 6.3.7 02/19/08 Q16 http://www.imagemagick.org

Esta es la información que ese comando entrega, y llama la atención:  Resolution: 72×72, y  Geometry: 979×666+0+0

El manual del programa «convert».  incluye una curiosa advertencia que podría tener relación con esto.

Note that Photoshop stores and obtains image resolution from a proprietary embedded profile. If this profile is not stripped from the image, then Photoshop will continue to treat the image using its former resolution, ignoring the image resolution specified in the standard file header.

En otras palabras. Es un formato propietario y aunque en la cabecera figure una determinada densidad (dpi), Adobe puede determinar la verdadera resolución de la imagen ignorando la densidad y la resolución especificada en cabecera.

Recordemos que ahora tenemos un fichero JPG de 4572061_cover_2.jpg de  4080×2775. Obtenido usando ‘-density 300’. Curiosamente esta son las dimensiones que salen si se aplican los cálculos para las dimensiones que vimos en la primera parte de este artículo, que se basó en la premisa de que el número de pixels dividido por 300 nos daría la dimensión en pulgadas. Las dimensiones de la cubierta ya las deducimos en pulgadas y pasar a píxels era simplemente multiplicar por 300, pero en el caso del fichero PDF en lugar de 4080×2775 píxels identify nos dice algo muy raro. Nos dice que el PDF tiene 979×666 pixels. Algo no va bien, pero me dí cuenta que 2775/666 =4.16666… Parecía el resultado exacto de una divisíón, lo cual es una suerte porque los píxels no pueden venir con decimales y no tendría porque dar exacto.  Resulta que 4.16666… es el resultado de dividir 300/72. ¡Eureka!

Aplicando este factor 4.1666… a las dimensiones de contraportada lomo y portada nos salen los valores en píxels reales que ya establecimos anteriormente pasando la dimensión en pulgada a pixels.

Portada y contraportada 441×646 en realidad corresponden a 1837×2775 píxels. Lomo 100×666 corresponde a 417×2775 píxels.

Resumiendo lo que podría ser una primera receta sería:

1) Obtenga una imagen para la portada y otra para la contraportada con el tamaño correcto que en

nuestro caso será 1837×2775.

2) Obtenga una imagen para el lomo con el tamaño correcto que en nuestro caso será 417×2775

3) Abra en Gimp una imagen con el tamaño global que en nuestro caso será de 4080×2775

metemos contraportada, lomo y portada mediante copiar y pegar, y salvamos.

El mismo resultado debería obtenerse combinando las imágenes con el programa convert que ya hemos dicho lo hace casi todo.

En este caso vamos a usar convert para añadir imágenes de izquierda a derecha, una al lado de la otra.

convert +append contraportada.jpg lomo.jpg portada.jpg portada_una_sola_pieza.jpg

En este último caso puede que los tamaños de las imágenes introduzcan errores de redondeo ya que cada una de ellas puede haber sido dimensionada con el valor por exceso tal y como recomendamos en su momento. En ese caso podemos encajar el tamaño final al tamaño deseado forzando la resolución deseada (no olvide usar ! en el comando que sigue).

convert -geometry 4080×2775! portada_una_sola_pieza.jpg portada_final.jpg

4) Una vez que tenemos nuestra imagen final jpg con el tamaño correcto la pasamos a PDF de la siguiente forma.

convert tiene posibilidades y opciones para casi cualquier cosa que se pueda uno ocurrir y resulta que también tiene una opción -page para especificar el tamaño de la página del documento PDF.  Así pues el comando mágico que hace lo que queremos sería.

convert -page 979×666 -geometry 4080×2775! -density 72×72 portada_final.jpg portada_final.pdf

Habrá notado que hemos usado -density 72×72 que es un valor irreal, pero lo cierto es que esto funciona así, y de cualquier otra manera no funciona, no pregunte porqué. Recuerde que el tamaño de la página es 979=(4080/4.1666) por 666=(2775/4.1666).

Esto es resultado de una dura lucha contra los estándares propietarios de Adobe y con la incomprensión y la prepotencia de Lulú.

El día que Lulú permita subir la imagen del lomo, tiren esta receta a la basura y usen el Wizard de Lulú. ¡Gracias Lulú por tu forma de tratar a tus usuarios!

Esta receta me ha funcionado y abre una posibilidad no solo para los que quieran publicar en Lulú usando sus propias portadas de una sola pieza creadas por ellos mismos y usando solo software libre, sino para los que deseen hacerlo en otros sistemas de autopublicación o de impresión bajo demanda. (Recordemos que el texto del libro no es problema porque OpenOffice importa a PDF el texto).

Ignoro si existe otro procedimiento mejor, pero queda claro que mientras Lulú no facilite las cosas, poco más podemos hacer los usuarios que jugar a las adivinanzas y a perder muchas horas de trabajo en tonterías como esta. Todo esto ha sido puesto a prueba y he recibido el resultado correcto de la prueba de impresión correspondiente.

Lo triste es que a Lulú no solo le importa muy poco los problemas de los usuarios de software libre sino que con la nueva política de precios Lulú parece apostar por el negocio de los usuarios que son meros autoconsumidores y no les importa que el precio del libro no sea competitivo. Para estos usuarios el libro es un capricho y pueden pagar un poco más. Lulú se dedica ahora a sacar el máximo de tajada a cada usuario y quizás por eso los wizards llevan tiempo sin incorporar mejoras importantes y muy necesarias. Tener que hacer varios pedidos a modo de pruebas de impresión se puede entender en un negocio que empieza, pero no es el caso. Las cifras del crecimiento de Lulú en número de usuarios son abrumadoras. Lulú se está equivocando tratando así a sus usuarios. Hoy tiene usuarios de sobra pero mañana aparecerá un competidor y seguramente lamentará las cosas que está haciendo ahora. Esta solución que yo he aportado es solo un parche y  Lulú podía hacer mucho más de lo que ha hecho.

Finalmente, la receta en forma de programa:

Una vez explicadas mis venturas y desventuras para llegar hasta aquí, seguramente lo que la gente quiere es algo fácil de usar, así que he automatizado todo el proceso en un solo script en lenguaje Python.  Se ofrece con código fuente. Supongo que para Windows necesitará alguna pequeña modificación, pero ImageMagick está disponible para Windows y para Linux, y Python también. Ambos son gratuitos.

El programa que acabo de realizar lo he llamado ‘3img1portada.py’, y lo ofrezco como programa de libre uso y distribución bajo licencia GPL, y está diseñado para funcionar en el S.O. Linux requiere tener instalado el intérprete de lenguaje Python y el paquete ImageMagick. Para usarlo en Windows habría que adaptarlo. Para ello recomiendo echar un vistazo a «Como usar Python en Windows.»

http://www.python.org/doc/2.6/using/windows.html

 

Licencia del programa:

Eres libre de usar el programa y distribuirlo incluso haciendo uso comercial del mismo si fuera el caso. Podrás adaptar a tu conveniencia el programa, si sabes un poco de programación, respetando la licencia GPL (Licencia Pública General de GNU)  http://www.gnu.org/copyleft/gpl.html que afectará igualmente a las modificaciones que tú hagas.

Uso del programa:

Es muy simple de usar. Imaginemos que tenemos tres imágenes contraportada.jpg, lomo.jpg y portada.jpg para un libro de 6″9″ de 550 páginas. En ese caso situaremos el programa y las imágenes en un directorio y teclearemos el comando siguiente:

3img1portada.py contraportada.jpg lomo.jpg portada.jpg 550

¡Ya está todo hecho! El programa hará todas las adaptaciones necesarias de esas imágenes, y generará una nueva combinándolas en una sola. El resultado será un único PDF con una única imagen que lo contiene todo. Compruebe el PDF generado. Si las imágenes de partida tenían baja calidad (alta compresión) o baja resolución. La calidad final no puede ser buena. Trabaje siempre con imágenes poco comprimidas y resolución muy alta, para asegurar un buen resultado. Recuerde que el sistema de impresión eliminará parte de la imagen cercana al borde al cortar el libro. Deje los bordes despejados. Compruebe que incluso las letras más pequeñas resultan perfectamente legibles usando un visor PDF con zoom.

Puede descargar el programa incluido en un paquete que contiene algunas utilidades  más el lenguaje Python:

utilidades_py.arj (DOWNLOAD 5 MBytes)
utilidades_py.tgz (DOWNLOAD 3 MBytes)

No solo ofrezco este programa. Me he peleado mucho con esto y también ofrezco ayuda a todo el que lo necesite generar portadas. Si usáis Windows y necesitáis ayuda adicional, comentarme vuestras necesidades. Os ayudaré en lo que pueda.

Anterior

Como fabricar un erradicador de acné por luminoterapia.

Siguiente

Graves problemas en Lulú.

2 comentarios

  1. admin

    Yo lo he usado ya varias veces y no solo con Lulú. Puede existir un margen de error en el grosor del lomo que puede variar con el grosor del papel, pero de momento me ha funcionado bien. La intersección entre el lomo y la portada o entre el lomo y la contraportada, deben de tener un diseño tolerante a un cierto margen de error en el cálculo del grosor del lomo. Me alegra recibir la confirmación de una persona que ha recibido la prueba de impresión correcta usando esta receta. Me parece que las pruebas de impresión en Lulú también son parte del negocio. No es de extrañar que las ayudas se queden a medias. A mí el wizard para confeccionar un álbum fotográfico me mostraron un resultado estupendo en pantalla. Luego cuando encargué la impresión, alguna foto salió tan recortada que un primer plano de perfil salió con la nariz cortada. Era un álbum de fotos de la boda de un sobrino mío. Me dio bastante rabia.

  2. Ignoro si existe otro procedimiento mejor, pero queda claro que mientras Lulú no facilite las cosas, poco más podemos hacer los usuarios que jugar a las adivinanzas y a perder muchas horas de trabajo en tonterías como esta. Todo esto ha sido puesto a prueba y he recibido el resultado correcto de la prueba de impresión correspondiente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Funciona con WordPress & Tema de Anders Norén