jueves, 8 de agosto de 2013

html2pdf error: Impossible de charger l'image

html2pdf error: Impossible de charger l'image

Al utilizar el componente HTML2PDF el cual es un conversor de HTML a PDF escrito en php, me salió el siguiente error:

Fatal error: Uncaught <span style="color: #AA0000; font-weight: bold;">ERREUR n°6</span><br>Fichier : /var/www/html/assets/html2pdf_v4.03/html2pdf.class.php<br>Ligne : 1319<br><br>Impossible de charger l'image thrown in /var/www/html/assets/html2pdf_v4.03/html2pdf.class.php on line 1319

Este error del componente html2pdf sale cuando estás itentando convertir un archivo HTML a PDF y el html contiene imágenes.

Esto es porque las rutas de las imágenes no deben ser urls absolutas ni relativas a algún sitio, deben ser rutas físicas.

Solución.

Lo que deben hacer es colocar las rutas fisicas de las imágenes como en el siguiente ejemplo:

<img src='/var/www/html/assets/img/laimagen.png' />

Espero les sirva.

miércoles, 7 de agosto de 2013

Reemplazar todos los caracteres con javascript

Reemplazar caracteres dentro de una cadena con javascript


Para reemplazar caracteres dentro de una cadena de texto con javascript se utiliza la función replace.
Sin embargo por defecto la función replace unicamente va a eliminar la primer ocurrencia del string buscado a menos que se especifique que se deben eliminar todas las ocurrencias del mismo.

Ejemplo:
En este caso se intenta reemplazar todas las ocurrencias del texto abc por un espacio en blanco. Lo primero que hacemos es un replace simple sin embargo esto sólo eliminará la primer ocurrencia del string buscado.

var str = "abc1, abc2, abc3, abc4 y abc5";
str=str.replace("abc"," ");
//str = " 1, abc2, abc3, abc4 y abc5";

Por lo tanto hay que especificar que se quieren eliminar todas las ocurrencias dentro de la cadena. Para esto se debe especificar lo siguiente:

var str = "abc1, abc2, abc3, abc4 y abc5";
str=str.replace(/abc/g," ");
//str = " 1,  2,  3,  4 y  5";

La letra g indica un replace global por lo que todas las coincidencias son reemplazadas. Se puede especificar también gi en caso de que se quiere hacer un replace global sin importar mayúsculas ni minúsculas.

Esto sería útil para casos como el siguiente en el que se quiere reemplazar todas las coincidencias de abc dentro de la cadena independientemente de si está en mayúsculas o minúsculas.

var str = "abc1, ABC2, Abc3, aBc4 y abC5";
str=str.replace(/abc/gi," ");
//str = " 1,  2,  3,  4 y  5";

El otro caso es para cuando quieres reemplazar todos los caracteres contenidos en una variable dentro de una cadena.
Dado que las instrucciones anteriores se colocan entre diagonales en el replace, no se pueden poner variables directamente en el replace por lo que debes hacer lo siguiente:

Ejemplo

var str = "abc1, abc2, abc3, abc4 y abc5";
var buscar="abc" 
str=str.replace(new RegExp(buscar,"g") ," ");
//str = " 1,  2,  3,  4 y  5";

Espero les sirva.

martes, 6 de agosto de 2013

Como detectar navegador con jquery

Como detectar navegador de internet con jquery

No es recomendable usar jQuery.browser según la propia API de jquery ya que parece que será descontinuado. Sin embargo sí existe la manera de usarlo y aquí se las pongo.

Para detectar si se está utilizando Internet Explorer con jquery, debes utilizar la siguiente línea de código:

if ($.browser.msie) {
// tu código aquí
}


No se puede detectar Google Chrome con jQuery por lo que se debe usar javascript puro como con el siguiente código:

var isChrome = window.chrome; 
if(isChrome) { 
// es chrome 
} else {
// no es chrome 

Existen algunas otras formas para detectar el navegador con javascript puro pero estas me parecieron las más sencillas.
No para todo se debe crear algún método de jQuery, en especial cuando se puede resolver con javascript simple en una sola línea.

Espero les sirva