Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/02/2015, 13:27
pedromir
 
Fecha de Ingreso: enero-2014
Mensajes: 91
Antigüedad: 10 años, 10 meses
Puntos: 2
Cortar texto según medida dada en pixeles

Hola, tengo un array con un campo donde tengo texto y quiero limitar la longitud de ese texto, como el div tiene 20px de anchura, necesito limitar la longitud a esa anchura y si la supera necesito cortarlo con substring, pero si lo corto por nº de caracteres como la anchura de estos varía en función de la letra que sea, unos textos me van a quedar más cortos que otros, así que tengo una función que me dice la anchura de todo el texto en pixeles, teniendo en cuenta el estilo, el tamaño y la familia de la fuente, pero lo que necesito es que partiendo de esa base la función me diga cuantos caracteres tengo que cortar para que el texto resultante me mida la longitud establecida, o sea, 20px en el caso del ejemplo y meter ese dato en el substring

Código Javascript:
Ver original
  1. var nombres = new Array();
  2. nombres = [["Luis","En un lugar de la Mancha"],
  3. ["Antonio","Lorm ipsum dolor sit amet, consecteuer adipi scing elit."]];
  4.  
  5. function cortarTexto(){
  6.     style = 'bold';
  7.     size = '10px';
  8.     family = 'Times New Roman';
  9.     texto = nombres[i][1];
  10.    
  11.     var cssStyle = style + " " + size  + " " + family;
  12.      //creamos el contexto canvas
  13.      var c=document.createElement("CANVAS");
  14.      var contexto2d=c.getContext("2d");
  15.      //le aplicamos el estilo de la fuente al  objeto canvas
  16.      contexto2d.font =cssStyle;
  17.      //nos devuelve el ancho del texto
  18.      var ancho = contexto2d.measureText(texto).width;
  19.      //retornamos el ancho calculado
  20.      alert(ancho)
  21.      return ancho;
  22. }