es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo leer cadena de ruta svg desde un archivo svg en Node.Js

Tengo una aplicación en la que necesito analizar una cadena de comandos de ruta svg de un archivo svg que está almacenado en el sistema de archivos con Node.Js. He intentado obtener la cadena de comandos de ruta svg utilizando el módulo cheerio, pero solo obtengo la primera cadena de comandos.

const path_to_svg = __dirname + '/documents/' + 'potpis.svg';

let $;

fs.readFile(path_to_svg, 'utf8', (err,data)=>{
    if(err) console.log(err);
    $ = cheerio.load(data,{ xmlMode : true });
});

const svgPath =  $('path').attr('d');

Pero mi archivo svg tiene tres rutas.

enter image description here

Para poder lograr la tarea de obtener la cadena de comandos de ruta svg completa, necesito obtener toda la cadena de comandos de ruta svg.
Si alguien tiene alguna solución para parsear la cadena de comandos de ruta svg desde un archivo svg en Node.Js, se lo agradecería.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para obtener todas las cadenas de ruta de un archivo SVG utilizando Node.js y el módulo cheerio, puedes utilizar el siguiente código:

    const path = require('path');
    const fs = require('fs');
    const cheerio = require('cheerio');
    
    const svgPath = path.join(__dirname, 'documents', 'potpis.svg');
    
    fs.readFile(svgPath, 'utf8', (err, data) => {
      if (err) {
        console.error(err);
        return;
      }
    
      const $ = cheerio.load(data, { xmlMode: true });
      const paths = $('path').map((i, el) => $(el).attr('d')).get();
    
      console.log(paths);
    });
    

    Aquí, estamos utilizando los módulos path y fs para leer el archivo SVG desde el sistema de archivos. Luego, estamos utilizando el módulo cheerio para cargar la cadena SVG y analizarla en un árbol DOM.

    Para obtener todas las cadenas de ruta, estamos utilizando el método map() en el selector $('path') para iterar sobre todos los elementos path y extraer el valor del atributo d. Finalmente, se utiliza el método get() para convertir el objeto cheerio en un array regular.

    Esto te dará un array con todas las cadenas de ruta en el archivo SVG.

Comments are closed.