Inicio > General > Formato vCard: estructura de un archivo

Formato vCard: estructura de un archivo

Viernes, 28 de Agosto de 2009 raul

El formato vCard

vCard es un formato estandarizado de tarjeta de visita electrónica, un pequeño archivo de texto con información estructurada sobre nuestros datos de contacto: nombre y apellidos, teléfono, e-mail, etc. Ciertos dispositivos y programas, como algunas PDAs, teléfonos móviles y programas de correo electrónico, son capaces de enviarse entre sí y reconocer archivos de texto en este formato con la extensión .vcf, añadiendo automáticamente el contenido a su lista de contactos. Por ejemplo, en el caso de las PDA de Palm es muy típico enviarse por infrarrojos una “tarjeta de visita”, que no es más que un archivo .vcf con los datos de contacto de quien la envía.

Desde hace ya bastantes meses hemos estado utilizando microformatos en los proyectos de Deditec. En concreto, estamos aplicando hCard (la versión en microformato de vCard) en los datos de contacto de varios de los sitios web que hemos desarrollado hasta ahora, y probablemente utilicemos hCalendar (e incluso hAtom) en cuanto tengamos la oportunidad.

Precisamente a raíz del uso de hCard se nos ocurrió hacer un pequeño experimento: incluir archivos vCard en nuestras firmas de correo electrónico y en los datos de contacto de nuestra web. El resultado, aunque satisfactorio, no lo ha sido tanto como esperábamos por razones que detallaré más adelante, pero al menos hemos aprendido bastantes cosas acerca del formato vcard que espero podamos aprovechar en el futuro… pero mejor pasemos a la acción:

Ejemplo de archivo vCard

Actualmente existen dos versiones de vCard, la 2.1 y la 3, pero en esta entrada me centraré en la más utilizada, la 2.1 (la que reconocen Mozilla Thunderbird, MS Outlook, Palm, …). La documentación completa sobre el formato vCard (en inglés) está disponible en la web del Internet Mail Consortium; además, en el artículo de la Wikipedia correspondiente a vCard hay una buena colección de referencias.

Veamos un ejemplo con los campos más habituales (puedes descargarte el archivo ejemplo.vcf desde aquí):

BEGIN:VCARD
VERSION:2.1
N;CHARSET=ISO-8859-1:Apellidos;Nombre
FN;CHARSET=ISO-8859-1:Nombre Apellidos
TITLE;CHARSET=ISO-8859-1;LANGUAGE=es-ES:Cargo
ORG;CHARSET=ISO-8859-1:Empresa, S.L.
ADR;WORK;CHARSET=ISO-8859-1;LANGUAGE=es-ES:;;C/ Mi Calle, 1, bajo;Ciudad;Provincia;28000;Spain
LABEL;WORK;CHARSET=ISO-8859-1;ENCODING=QUOTED-PRINTABLE;LANGUAGE=es-ES:Empresa, S.L.=0D=0AC/ Mi Calle, 1, bajo=0D=0A28000 - Ciudad=0D=0ASpain
NOTE;CHARSET=ISO-8859-1;ENCODING=QUOTED-PRINTABLE;LANGUAGE=es-ES:C.I.F.: B-8xxxxxxx
EMAIL;PREF;INTERNET:mi.mail@dominio.es
URL;WORK:http://www.dominio.es
TEL;CELL:(+34) 6xxxxxxxx
TEL;WORK:(+34) 9xxxxxxxx
END:VCARD

A pesar del aspecto tan abigarrado, todo esto tiene sentido ;-) . Debemos tener en cuenta que el formato vCard está pensado para que sea leído por una máquina, y no por una persona, a diferencia de los microformatos como hCard. También debemos tener en cuenta que no siempre se necesitan todos los datos que he incorporado en el ejemplo, y que he añadido algunos parámetros que contribuyen un poco más al aparente caos… pero lo mejor será analizar el documento línea por línea:

Capí­tulos: | 1 | 2 | 3 | 4 | 5 | Siguiente |

  1. Carlos Cárdenas Negro
    Jueves, 12 de Noviembre de 2009 a las 20:23 | #1

    Hola, he llegado a tu página desde google al preguntar el modo de enviar VCards a un iPhone (que no dispone, por el momento, de tal opción) y me ha dado toda la información que necesitaba para, al menos, hacer alguna pruebilla y, efectivamente, construi una VCard en notepad y la adjunte a un email y me lo envié al iphone y voila, el aparato reconoce lo que es y lo presenta con un icono apropiado -una especie de fichita-, al hacer clíck sobre él se abre la aplicación Agenda mostrando perfectamente formateado el contenido y te da la opción de añadirlo a un contacto existente o crear uno nuevo con esta información.

    Vale estupendo me ha servido para aprender, pero, lo que yo quería era poder enviar los números desde mi teléfono a la agenda del coche u otro teléfono y me parece que tendré que esperar ya que por ahora no hay una aplicación espécífica para ello. ¿Quien la hará?, seguro que en poco tiempo.

    Muchas gracias por la información.

  2. Dani
    Viernes, 13 de Noviembre de 2009 a las 15:18 | #2

    UTF-8 soporta en teoria todos los carcteres, tanto tildes y acentos como ogoneks y letras centro-europeas, Quizás vuestros problemas con Thunderbird vienen de ahí. Creo que deberiais especificar como formato UTF-8 y punto. Gracias por el tuto, muy completo… no conocia el temade las vcard y me estoy empapando un poco.. a ver que puedo hacer con ellas.. ciao! Saludos!

  3. raul
    Viernes, 18 de Diciembre de 2009 a las 01:22 | #3

    @Carlos y @Dani: Muchas gracias a ambos por vuestros comentarios, y encantado de que el artículo os haya sido útil :-)

    @Dani: En mi trabajo suelo utilizar UTF-8 prácticamente para todo, pero en este ejemplo concreto (intercambiar vCards entre PalmOS y Thunderbird) no he tenido más remedio que utilizar ISO-8859-1…

    Como menciono en el artículo, lo ideal sería utilizar UTF-8, ya que (como comentas muy acertadamente) da un soporte mucho mayor a caracteres internacionales, pero en este caso me he encontrado con que tanto PalmOS como la libreta de direcciones de Windows (al menos en XP) no “tragan” UTF-8 y utilizan ASCII (que por cierto es la codificación por defecto de vCard), y además sin especificarlo :-(

    La solución que hemos encontrado ha sido utilizar ISO-8859-1 (que es básicamente un ASCII ampliado) e indicarlo en el propio documento, de tal manera que no hubiera problemas ni con PalmOS, ni con Windows ni con Thunderbird… en cuanto tenga un rato para ello haré alguna prueba con Android, a ver qué pasa. Y si alguien hace más pruebas sobre un iPhone, o sobre un Palm Pre, que no dude en dejarnos un comentario por aqui ;-)

    ¡Gracias de nuevo a los dos! :-)

  4. clara
    Martes, 9 de Febrero de 2010 a las 13:43 | #4

    Hola, tengo una barbaridad de archivos vcard que proceden de un mac y necesito pasarlos a outlook en un pc pero al abrir cada uno de los archivos me salen vacíos. hay alguna posibilidad o algún programa para convertirlos o para al menos que pueda abrirlos y ver el contenido??
    Muchas gracias

  5. raul
    Martes, 9 de Febrero de 2010 a las 15:03 | #5

    Hola, Clara:

    Prueba a abrir alguno con el bloc de notas de Windows (por ejemplo, abriendo el bloc de notas y arrastrando dentro de él uno de los archivos vcard).

    Si el archivo no contiene nada (o al menos nada “legible”), puede ser que estés abriendo el “resource fork” de ese archivo (http://macprogramadores.org/actualidad/trucos/hfsplus/hfsplus.shtml), que no contiene datos legibles normalmente por un PC, o puede ser que realmente el archivo esté dañado. En todo caso, mira si hay algún otro archivo con el mismo nombre (y que no empiece con un punto), y prueba a abrirlo también con el bloc de notas…

  6. Domingo, 16 de Enero de 2011 a las 02:39 | #6

    Hola,
    Quería saber hasta que punto es personalizable en cuanto a imagen una vcard. ¿Se puede hacer algo creativo que quede empaquetado en dicho archivo? Me refiero a tipografías, colores, imágen de fondo, posición de la fotografía, etc. Como si creasemos una pequeña página web en html.
    En caso de que este estándar admita ser personalizado, ¿sería leido y representado correctamente por las distintas aplicaciones que manejan archivos .vcf?
    Gracias y un saludo.

  7. raul
    Domingo, 16 de Enero de 2011 a las 15:26 | #7

    Hola, Carlos:

    vCard (.vcf) es un formato de archivo pensado para intercambiar información de manera estandarizada entre distintos dispositivos (teléfonos móviles, PDAs, clientes de correo electrónico, …), y admite elementos gráficos (foto, logotipo) pero únicamente como contenido. Algo así como el HTML tal y como se entiende hoy en día: contenido estructurado e independiente de su aspecto (eso se deja para las hojas de estilo CSS).

    Desde este punto de vista, y hasta donde yo conozco, no parece que el formato de archivo vCard admita personalizaciones en cuanto a su aspecto. Supongo que se lo plantearon como un paquete de información organizado de tal manera que se pudiese leer por dispositivos y programas muy diferentes, y supongo también que pretenderían que esos mismos dispositivos y programas se encargaran de su presentación gráfica, cada uno dentro de sus posibilidades… es decir, como un HTML “pelado” al que cada dispositivo o programa aplica su propio CSS.

    Sin embargo, hCard (la versión en microformato HTML de vCard) sí admite que se modifique su aspecto mediante estilos CSS: al fin y al cabo, hCard no es más que HTML organizado de cierta manera particular y marcado con clases específicas.

    Por cierto, investigando un poco sobre el tema me he encontrado con que el término vCard se está empezando a utilizar para referirse también a tarjetas de visita electrónicas en forma de página web (por ejemplo, http://infectedfx.net/30-impresionantes-disenos-de-vcards/2009/), que contienen básicamente los datos de contacto de una persona u organización, presentados de manera elegante y llamativa… Al fin y al cabo, es exactamente lo mismo que desarrollar una buena hoja de estilos para aplicársela a un documento HTML marcado según el estándar hCard.

    Espero haberte servido de ayuda… Un saludo, y gracias por comentar :-)

  8. ariel
    Jueves, 27 de Enero de 2011 a las 17:42 | #8

    Hola, Tengo datos en formato excel, como hago para convertirlos a vCard. Gracias

  9. raul
    Sábado, 5 de Febrero de 2011 a las 22:24 | #9

    @ariel
    Hola, Ariel:

    Haciendo una búsqueda en Google por “export vcard” aparecen muchos programas que al parecer convierten datos a archivos vcard. Pero si no quieres utilizar ninguno de esos programas, una opción que se me ocurre rápidamente puede ser exportar esos datos desde Excel a un formato más estándar, como .csv, y probablemente los puedas importar a Outlook (si usas Windows), que permite a su vez exportar esos datos a archivos .vcf. Algunos de los resultados de la búsqueda que comentaba arriba tratan de ello: http://support.microsoft.com/kb/175017, http://www.techhit.com/outlook/export_contacts_vcard_vcf.html.

    Si no utilizas Outlook, probablemente puedas hacer algo parecido con otros clientes de correo electrónico. Por ejemplo, para Thunderbird 2 existía una extensión (MoreFunctionsForAddressbook) que permitía hacerlo, y que menciono en el post. Para el actual Thunderbird 3 parece que hay otra extensión que lo hace, Thundersync (https://addons.mozilla.org/es-ES/thunderbird/addon/thundersync/), pero no la he probado…

    Por cierto, cuando hayas exportado los datos sería interesante (y te agradeceríamos mucho) que explicaras aquí cómo lo has hecho, para que otras personas que lean el post puedan aprovechar tu experiencia. En cualquier caso, un saludo, y gracias por comentar el post :-)

Comentarios cerrados.