Más herramientas para convertir PDF, Word o HTML a ePub para iPad

Actualización: Si lo que quieres es solo leer documentos PDF, Apple actualizo iBook y ya se pueden pasar los archivos, aquí te explico como.

Hace unos dias hice un pequeño tutorial de como convertir libros de PDF a ePub usando Calibre para poder leerlos en el iPad, eh estado buscando algunas alternativas y esto fue lo que encontre:

Web

  1. Epub2Go – Es un sitio web que te permite en solo unos clicks convertir PDF’s a ePub, para leerlos con iBook o Stanza, es gratuito y rapido (al menos cuando yo lo probe), le pasas el PDF y te regresa tu libro convertido, listo para importarlo al iPad.
  2. BookGlutton – Otro sitio web, este solo permite convertir HTML a ePub, no es gratuito, cobran 5 dlls por descargar el ePub convertido, tiene otro detalle, el documento HTML tiene que seguir algunas guías sencillas que están en el sitio para cumplir con los lineamientos y subirlo como zip.
  3. Feedbooks – En este sitio web puedes crear tu libro y publicarlo en formato ePub para cualquier dispositivo, tiene una libreria bastante completa de libros de propiedad común, aunque si lo tuyo es escribir libros, este es un excelente sitio para hacerlo, tiene una interfaz web para crear el libro bastante sencilla, por lo que revise el servicio es gratuito.

Aplicaciones

  1. Calibre – Como ya lo había mencionado, es la que mejor me funcionó a mi, bastante sencilla y gratuita.
  2. Sigil book editor – Esta es una herramienta para editar libros en formato ePub principalmente, pero se pueden importar archivos en formato TXT y HTML para después convertirlos a ePub, es muy visual ya que cuenta con un editor WYSIWYG como el de Word, es multiplataforma y gratuito.
  3. ePUB-tools – Grupo de herramientas en base a linea de comandos para convertir desde casi cualquier formato de texto a ePub, es gratuito pero no tan amigable como otros ya que hay que usar la consola para convertir los libros.
  4. Stanza – Stanza desktop te permite convertir al igual que calibre casi cualquier tipo de formato a ePub, además tiene la cualidad que las versiones para iPhone, iPod Touch e iPad pueden leer PDF, Word, TXT, etc…, es gratuito y bastante sencillo.

Bueno, estos son los que encontre, ojalá les sirva alguno.

DropDownList en cascada con jQuery y ASP.NET

Como usar DropDownList o Selects en cascada con ASP.NET y jQuery?, es una de las dudas que mas se generan en los foros de discusión al momento de realizar cosas con AJAX y .NET sin el UpdatePanel.

Voy a explicar como realizo esta tarea para que sea un proceso sencillo.

Crearemos un nuevo proyecto web y nos aseguraremos de configurarlo para que pueda usar jQuery.

En la pagina Default.aspx agregaremos dos DropDownList y quedara algo como el siguiente codigo:

<%@ Page Language="C#" Inherits="EjemploDropDownList.Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head runat="server">
	<title>Ejemplo DropDownList</title>
	<script src="js/jquery-1.4.2.min.js" type="text/javascript" ></script>
</head>
<body>
	<form id="form1" runat="server">
		<asp:DropDownList runat="server" id="ddlPrincipal" ></asp:DropDownList>

		<br />

		<asp:DropDownList runat="server" id="ddlSecundario" > </asp:DropDownList>
	</form>
</body>
</html>

Lo unico que hace este código es agregar la referencia de jQuery (la 1.4.2) y dos DropDownList, sin ningún otro control ni tampoco código que tenga que ser procesado aun por el servidor.

Enseguida vamos a llenar el primer DropDownList (ddlPrincipal) con algunos datos, en este caso seran continentes, esto lo vamos a colocar en el evento Load de la pagina Default.aspx:

private void Page_Load(object sender, System.EventArgs e)
		{
			ListItem elemento;

			elemento = new ListItem("America", "1");
			ddlPrincipal.Items.Add(elemento);

			elemento = new ListItem("Africa", "2");
			ddlPrincipal.Items.Add(elemento);

			elemento = new ListItem("Europa", "3");
			ddlPrincipal.Items.Add(elemento);
		}

Corremos el proyecto y nos debe mostrar algo como esto:

Ejemplo de DropDownList

Ahora es tiempo de meter un poco de código JavaScript en nuestra aplicación, para eso insertaremos el siguiente código entre las etiquetas <head> de Default.aspx :

<script type="text/javascript">
		$(document).ready(function(){

		// Configuracion de jQuery y AJAX
		$.ajaxSetup({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            data: "{}",
            dataFilter: function(data) {
                var msg;

                if (typeof (JSON) !== 'undefined' &&
                    typeof (JSON.parse) === 'function')
                  msg = JSON.parse(data);
                else
                  msg = eval('(' + data + ')');

                if (msg.hasOwnProperty('d'))
                  return msg.d;
                else
                  return msg;
            }
        });

			// Solo se ejecuta cuando seleccionamos alguna opcion.
			$('#<%=ddlPrincipal.ClientID %>').change(function(){
				$.ajax({
					url: "Default.aspx/obtenerPaises",
					data: "{'continente':'" + $("#<%=ddlPrincipal.ClientID %>").val() + "'}",
					success: function(msg) {
						$('#<%=ddlSecundario.ClientID %>').html(msg);
					},
					error: function(XMLHttpRequest, textStatus, errorThrown) {
				       alert('Error: ' + textStatus + ", " + errorThrown);
				   }
				});
			});

		});
	</script>

Este código hace dos cosas:

  1. Configura jQuery para usar AJAX y JSON como nosotros necesitamos y nos evita un pequeno malestar respecto a las “d” en los .NET frameworks anteriores a 3.5.
  2. Captura el evento Change del DropDownList Principal que ocurre cuando se selecciona cualquier opción del DropDownList y va a buscar el código que se ejecutara por .NET para traer lo que haga falta.

Como nota especial, si observan estoy pidiendo la información de la misma pagina “Default.aspx” y no de un WebService que es como comúnmente se hacen estas peticiones, a esto se le llama usar WebMethods.

Enseguida veremos el código que en .NET dependiendo de la opción seleccionada traerá una respuesta diferente, para lo cual agregaremos al archivo Default.aspx.cs el siguiente codigo debajo de Load_Page :

[WebMethod()]
		public static string obtenerPaises(string continente)
		{
			List<ListItem> elementos = new List<ListItem>();
			ListItem elemento;
			string resultado = "";

			// Usaremos simples 'if' para hacer sencillo el ejemplo.
			if (continente == "1") {
				elemento = new ListItem("Mexico", "1");
				elementos.Add(elemento);
				elemento = new ListItem("EUA", "2");
				elementos.Add(elemento);
			}

			if (continente == "2") {
				elemento = new ListItem("Kenia","1");
				elementos.Add(elemento);
				elemento = new ListItem("Congo","2");
				elementos.Add(elemento);
			}

			if (continente == "3") {
				elemento = new ListItem("Francia","1");
				elementos.Add(elemento);
				elemento = new ListItem("Italia","2");
				elementos.Add(elemento);
			}

			foreach (ListItem item in elementos) {
				resultado = resultado + "<option value='" + item.Value + "'>";
				resultado = resultado + item.Text;
				resultado = resultado + "</option>,";
			}

			return resultado;
		}

Este código como verán es bastante sencillo y lo unico que hace es recibir como parametro el “continente” y en base al que se selecciono agregar a un listado ciertos elementos y al final regresar una cadena de <options> de un select de HTML.

Segunda nota: el nombre de la variable que recibe el parametro debe ser el mismo que el que pasamos en el javascript (data: “{‘continente’: … )

Y listo, ahora hay que correr el proyecto y esto nos permitira realizar DropDownList en cascada.

Convertir libros PDF a ePub para iPad

Actualización: Si lo que quieres es solo leer documentos PDF, Apple actualizo iBook y ya se pueden pasar los archivos, aquí te explico como.

Una de las primeras cosas que realice al tener la iPad en mis manos fue el descargar la aplicación para leer libros (iBooks) y buscar algunos temas para probar, encontre algunos y la verdad la aplicación es excelente, desafortunadamente para mi, tengo muchos libros en formato PDF y estos solo se pueden leer en la iPad por medio de algunos metodos extranos eh ineficientes, como enviarme el archivo por email y leerlo desde el cliente de correos, el problema es que no te guarda la pagina donde te quedaste y eso fastidia bastante si estas leyendo libros largos.

La solución a esto fue convertir los libros al formato ePub que puede leer la aplicación iBooks, este es un formato libre y abierto para la publicación de libros, cuya mayor ventaja es que los libros publicados en este formato se pueden adaptar facilmente al dispositivo que los reproduzca.

Bueno, vayamos a la acción, para poder convertir los libros existen diferentes opciones, la que mejor resultados me dio fue Calibre, una aplicacion libre y abierta que permite convertir desde distintos formatos a ePub en unos cuantos pasos.

El Slogan de Calibre

  1. Descargar Calibre para tu Sistema Operativo (es pesado cerca de 60 MB ). Descarga de Calibre para OS X
  2. Instalalo en tu computadora, cuando te pregunte por el dispositivo selecciona Apple>>iPad/iPhone (o el dispositivo que tengas) Seleccion de dispositivo en Calibre
  3. Ya una ves instalado, correr el programa y toda la acción se concentrara en los botones de Add Books, Edit meta information y Convert E-Books Botones de mas uso para convertir libros con Calibre
  4. Agrega libros con Add books (opciones desde directorios hasta recursividad en los directorios)
  5. Edita su información o descargala, el programa te da una opción para descargar la meta información del libro en caso de estar disponible (esto funciona muy bien para novelas y libros de historia).
  6. Ultima detalles y revisa que los tipos de conversion sean correctos. Ventana de conversion de libros en Calibre
  7. Agrega el libro a iTunes (Archivo > Importar a la libreria), conecta el iPad y sincronizalo y a disfrutar.

Con esto ahora puedes disfrutar todos tus libros de PDF en el iPad, como yo lo hago ahora.

Nota: Si no te convence Calibre, tengo un listado de otras aplicaciones que sirven para lo mismo.

Mi estantería de iBook en el iPad

Cambio de tema para el blog

Ya tenía un rato que no modificaba el estilo visual de este blog, asi que decidí que era momento de cambiarlo por algo más practico y que me implicara menos tiempo en modificaciones o creación.

Este es un tema de los ofrecidos por WordPress, voy a modificarlo conforme pase el tiempo y se me vayan ocurriendo cosas, no es la gran cosa pero me gustan las opciones del sidebar y que ya puedo colocar un enlace a mi Twitter en el header.

Preview del blog

Vista previa del nuevo diseño del blog

Si lees esto en el RSS, te invito a darte una vuelta y decirme que te parece, al menos creo que la lectura es más clara ahora.