domingo, 10 de octubre de 2010

Por qué no uso PDF al publicar en Internet

Frecuentemente algunos lectores de mis libros tales como La Teoría de la Relatividad y La Mecánica Cuántica publicados y disponibles en Internet a través de Blogger me preguntan si tengo disponibles tales libros en formato PDF (Portable Document Format) de Adobe Systems.

La respuesta es siempre la misma. Como yo no tengo ni el tiempo ni los recursos $$$$$ para mantener en operación las 24 horas del día en algún lugar un servidor Internet en donde pueda hacer accesibles mis libros al público en general, me atengo a la  generosidad de Google que a través de Blogger me permite subir mis libros a Internet. Pero el formato usado por Blogger no es el formato de documentación PDF, sino HTML. Tal vez algún día Blogger permita la incorporación de obras elaboradas en formato PDF a sus páginas Web, pero como el formato PDF es propietario de Adobe Systems y Blogger tendría que estarle pagando los derechos de autoría intelectual por el uso de PDF (o mejor dicho, los que subimos obras a Blogger tendríamos que estarle pagando de alguna manera a Adobe Systems por el uso del formato PDF), tal formato está proscrito de Blogger, y lo único que acepta Blogger es HTML.

Por otro lado, aún si Adobe Systems le regalara a Google el uso ilimitado gratuito de la tecnología de software Adobe para poder incorporar documentos PDF a las bitácoras, ello introduciría un problema nuevo a los trabajos cuando se están elaborando en Blogger.  Actualmente, podemos hacer la transición rápida de un documento “tal y como lo vemos” (usando la opción Redactar dentro del constructor Blogger) a su código correspondiente en sintaxis HTML (usando la opción HTML del constructor de Blogger) para ajustar detalles finos, pasando de una vista a otra de manera rápida y automática. Pero si se agregara la capacidad de poder meter código PDF, la capacidad de poder cambiar rápidamente y en forma automática de cualquiera de las dos opciones Redactar y HTML a PDF o viceversa sería una verdadera pesadilla, al menos desde el punto de vista de la actualización del código y la extensión en bytes del software requerido. Conozco de otro medio de publicación gratuito para obras en Internet, WordPress, pero aunque no estoy familiarizado con el mismo las razones que acabo de exponer aquí me serían suficientes para sospechar que tampoco WordPress ofrece todavía la capacidad de poder subir obras a WordPress en formato PDF. Y de cualquier manera, como yo empecé con Blogger, prefiero apegarme a algo con lo que estoy familiarizado que verme forzado a tener que recorrer una nueva curva de aprendizaje que me tomaría un tiempo que no tengo disponible.

De cualquier modo, hay otras razones por las cuales aún si tuviera disponible un paquete comercial de Adobe para convertir mis obras a formato PDF tal opción no sería realmente una opción debido a ciertas peculiaridades e ideosincrasias peculiares a HTML. Una de tales peculiaridades es la incorporación de imágenes animadas (en movimiento) dentro de los documentos HTML, lo cual se puede lograr fácilmente mediante el uso de imágenes GIF. Tales imágenes animadas no es posible imprimirlas en papel, razón por la cual el formato PDF en general no admite ese tipo de animaciones.

Pero la cosa no para allí. Considérese la presentación de cosas como el siguiente crucigrama:



____

____

____
A L__ A E__ A N__
____
A N__ A A__ A O__
____

____

____
A N
____
A T A O A D A A
____
A O A N A C A E __
____
A N__
A O
____
A U A N A I A V A E __ A R A S A A A L
____
A O
A G A E __
____
A A A L A A A R A M A A
____

____
A A __ A B
A A A C A A
____

____
A L A I A A
____
A A A V A A A L
A L A O A C A A A L
____
A N
____
A I A R A I A R A E

____

____
A A A L A A
____

____

____
A D A A A R
____

____
A S A A A B A E A R
____
A O
____
A A A Z A A A L A A
A O A L A E
____

____
A A A V A E
____
A A A R A A A L
A B A I
____
A S A O A L A A A P A A
____

____
A Y A E
A R
____
A N A O A S A O A L A O A G A I A A
____
A A
A E
____
A E A S A A A S
____
A C A A A L A I
____
A R

____

____

____
A O A R A A
____
A A A R A O
____

____

____


Si el lector intenta descargar de la Web la “imagen” del crucigrama anterior (que en realidad es una tabla de 13 renglones por 13 columnas) como una imagen JPG o JPEG o PNG, pronto descubrirá que tal cosa no se puede llevar a cabo, por el simple hecho de que el crucigrama está construido como una tabla usando la sintaxis HTML. Puesto de otra manera, el código para generar el crucigrama anterior, que en realidad no es más que código HTML para generar una tabla, que en este caso es:

<div align="center">
<table border="1">

<tbody>
<!-- Renglon 1 -->
<tr>

<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> L<span style="color: white;">__</span></td>
<td><span style="color: white;">A</span> E<span style="color: white;">__</span></td>
<td><span style="color: white;">A</span> N<span style="color: white;">__</span></td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> N<span style="color: white;">__</span></td>
<td><span style="color: white;">A</span> A<span style="color: white;">__</span></td>
<td><span style="color: white;">A</span> O<span style="color: white;">__</span></td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>

</tr>
<!-- Renglon 2 -->
<tr>

<td><span style="color: white;">A</span> N </td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> T </td>
<td><span style="color: white;">A</span> O </td>
<td><span style="color: white;">A</span> D </td>
<td><span style="color: white;">A</span> A </td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> O </td>
<td><span style="color: white;">A</span> N </td>
<td><span style="color: white;">A</span> C</td>
<td><span style="color: white;">A</span> E <span style="color: white;">__</span> </td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> N<span style="color: white;">__</span></td>

</tr>
<!-- Renglon 3 -->
<tr>

<td><span style="color: white;">A</span> O </td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span> </td>
<td><span style="color: white;">A</span> U</td>
<td><span style="color: white;">A</span> N</td>
<td><span style="color: white;">A</span> I</td>
<td><span style="color: white;">A</span> V</td>
<td><span style="color: white;">A</span> E <span style="color: white;">__</span> </td>
<td><span style="color: white;">A</span> R</td>
<td><span style="color: white;">A</span> S </td>
<td><span style="color: white;">A</span> A </td>
<td><span style="color: white;">A</span> L</td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> O</td>

</tr>
<!-- Renglon 4 -->
<tr>

<td><span style="color: white;">A</span> G</td>
<td><span style="color: white;">A</span> E <span style="color: white;">__</span>  </td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> A </td>
<td><span style="color: white;">A</span> L </td>
<td><span style="color: white;">A</span> A</td>
<td><span style="color: white;">A</span> R</td>
<td><span style="color: white;">A</span> M</td>
<td><span style="color: white;">A</span> A</td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> A <span style="color: white;">__</span> </td>
<td><span style="color: white;">A</span> B</td>

</tr>
<!-- Renglon 5 -->
<tr>

<td><span style="color: white;">A</span> A </td>
<td><span style="color: white;">A</span> C</td>
<td><span style="color: white;">A</span> A </td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> L</td>
<td><span style="color: white;">A</span> I</td>
<td><span style="color: white;">A</span> A</td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> A </td>
<td><span style="color: white;">A</span> V </td>
<td><span style="color: white;">A</span> A</td>
<td><span style="color: white;">A</span> L</td>

</tr>
<!-- Renglon 6 -->
<tr>

<td><span style="color: white;">A</span> L </td>
<td><span style="color: white;">A</span> O </td>
<td><span style="color: white;">A</span> C</td>
<td><span style="color: white;">A</span> A </td>
<td><span style="color: white;">A</span> L </td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> N </td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> I</td>
<td><span style="color: white;">A</span> R</td>
<td><span style="color: white;">A</span> I</td>
<td><span style="color: white;">A</span> R</td>
<td><span style="color: white;">A</span> E </td>

</tr>
<!-- Renglon 7 -->
<tr>

<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> A </td>
<td><span style="color: white;">A</span> L</td>
<td><span style="color: white;">A</span> A</td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> D </td>
<td><span style="color: white;">A</span> A</td>
<td><span style="color: white;">A</span> R</td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>

</tr>
<!-- Renglon 8 -->
<tr>

<td><span style="color: white;">A</span> S </td>
<td><span style="color: white;">A</span> A </td>
<td><span style="color: white;">A</span> B</td>
<td><span style="color: white;">A</span> E</td>
<td><span style="color: white;">A</span> R</td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> O</td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> A </td>
<td><span style="color: white;">A</span> Z</td>
<td><span style="color: white;">A</span> A</td>
<td><span style="color: white;">A</span> L </td>
<td><span style="color: white;">A</span> A </td>

</tr>
<!-- Renglon 9 -->
<tr>

<td><span style="color: white;">A</span> O </td>
<td><span style="color: white;">A</span> L</td>
<td><span style="color: white;">A</span> E</td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> A </td>
<td><span style="color: white;">A</span> V</td>
<td><span style="color: white;">A</span> E </td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> A </td>
<td><span style="color: white;">A</span> R</td>
<td><span style="color: white;">A</span> A</td>
<td><span style="color: white;">A</span> L</td>

</tr>
<!-- Renglon 10 -->
<tr>

<td><span style="color: white;">A</span> B </td>
<td><span style="color: white;">A</span> I</td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> S </td>
<td><span style="color: white;">A</span> O </td>
<td><span style="color: white;">A</span> L</td>
<td><span style="color: white;">A</span> A</td>
<td><span style="color: white;">A</span> P</td>
<td><span style="color: white;">A</span> A </td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> Y </td>
<td><span style="color: white;">A</span> E</td>

</tr>
<!-- Renglon 11 -->
<tr>

<td><span style="color: white;">A</span> R</td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> N</td>
<td><span style="color: white;">A</span> O</td>
<td><span style="color: white;">A</span> S</td>
<td><span style="color: white;">A</span> O</td>
<td><span style="color: white;">A</span> L</td>
<td><span style="color: white;">A</span> O</td>
<td><span style="color: white;">A</span> G</td>
<td><span style="color: white;">A</span> I </td>
<td><span style="color: white;">A</span> A </td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> A</td>

</tr>
<!-- Renglon 12 -->
<tr>

<td><span style="color: white;">A</span> E </td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> E </td>
<td><span style="color: white;">A</span> S</td>
<td><span style="color: white;">A</span> A</td>
<td><span style="color: white;">A</span> S</td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> C </td>
<td><span style="color: white;">A</span> A</td>
<td><span style="color: white;">A</span> L</td>
<td><span style="color: white;">A</span> I</td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> R</td>

</tr>
<!-- Renglon 13 -->
<tr>

<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> O </td>
<td><span style="color: white;">A</span> R</td>
<td><span style="color: white;">A</span> A</td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td><span style="color: white;">A</span> A </td>
<td><span style="color: white;">A</span> R</td>
<td><span style="color: white;">A</span> O</td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>
<td bgcolor="#000000"><br />
<span style="background-color: black;">____</span></td>

</tr>
</tbody></table>
</div>


requiere de las capacidades del navegador, ayudado por las capacidades computacionales de la laptop o tableta en donde se va a visualizar la tabla HTML ya construída por el procesador de la computadora a partir del código HTML proporcionado. El formato PDF inherentemente no tiene tales capacidades, o sea de poder tomar código HTML para llevar a cabo la generación de tablas. Es más, ni siquiera conozco de algún lenguaje computacional al estilo de HTML mediante el cual se puedan construír obras en formato PDF usando una “sintaxis PDF”. Tal vez tal sintaxis exista, pero de existir es propietaria para uso interno de los ingenieros de software de Adobe Systems. Las tablas como la que se usó para la construcción del crucigrama dado arriba tienen que ser incorporadas a un documento PDF como imágenes (JPG, JPEG, PNG, etcétera).

Si bien una cosa factible de hacer para empezar con un documento elaborado en sintaxis HTML e irlo convirtiendo a un documento en formato PDF es ir tomando la imagen de cada tabla HTML tal y como aparece arriba en la pantalla (esto se hace con la ayuda de la tecla Print Screen o prt sc en el teclado), convertirla a una imagen JPG o PNG, y meterla directamente como imagen para ir elaborando el documento PDF, en mi caso particular dada la cantidad de materiales que he subido a Internet tal cosa está fuera del alcance de las capacidades de mi tiempo disponible. Y no he encontrado alguien en la Web que se quiera tomar el tiempo para hacer tal cosa, o sea la conversión de mis obras de formato HTML al formato de archivo PDF, que a su vez requeriría de algún sitio Web dispuesto a almacenar por tiempo indefinido y en forma gratuita las obras en formato PDF.

De cualquier modo, en caso de ser suficiente contar con un documento en el cual las imágenes animadas aparezcan como simplemente como la primera imagen de la secuencia de imágenes, o sea como imágenes estáticas, cada página Web completa (como ésta) se puede imprimir directamente hacia una computadora usando las capacidades de los navegadores como Mozilla Firefox, Chrome, Internet Explorer y Safari, para llevar así a cabo la impresión. De seguro no estará acomodado todo tal y como suele encontrarse en un libro impreso, pero de cualquier modo se puede utilizar como tal en papel impreso. Me permito recordar que ir de la pantalla electrónica al medio impreso es contrario al espíritu de la era digital en el que se intenta salvar a los árboles que tienen que ser talados para poder sacar la pulpa necesaria para producir las hojas en las cuales irá el material impreso, lo cual a su vez es causa de deforestación que a su vez solo contribuye a agravar aún más el cambio climático.