Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

156
Vistas
Cómo obtener un valor único de .xml

Tengo algo de xml o excel. Quiero recorrer este documento en el script de InDesign e insertar valores en lugares definidos. Esto es excel o xml. ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

esto quiero conseguir ingrese la descripción de la imagen aquí

No tengo tanta experiencia con secuencias de comandos, así que solo puedo usar este fragmento de código

 var doc = app.activeDocument; var myFile = File("~/Desktop/test.xml"); var textExcel = doc.textFrames.add(); textExcel.geometricBounds = [50, 80, 10, 150]; textExcel.place(myFile);

pero ahora, ¿cómo puedo obtener un valor único? por ejemplo, en la plantilla de Indesign, el primer párrafo debería verse como tabla --> lorem--> 150

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Probablemente puedas hacer esto con xpath y Document. https://developer.mozilla.org/en-US/docs/Web/API/Document/evaluate

Creas un nuevo Documento con el xml y evalúas un xPath.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Aquí está la posible solución:

 var doc = app.activeDocument; // get a text from the XLSX file var inputFile = File("d:/table.xlsx"); var temp_frame = doc.textFrames.add(); temp_frame.place(inputFile); var text = temp_frame.parentStory.contents; temp_frame.remove(); // make a table from the text var rows = text.split('\r'); var table = []; for (var i = 1; i < rows.length; i++) table.push(rows[i].split('\t')); // loop through the table and make the cards for (var i = 0; i < table.length; i++) { var title = table[i][0]; var description = table[i][1]; var price = table[i][2]; var card = make_card(title, description, price); // move the card to some places card.move([10,10]); card.move(undefined, [i*75, 0]); } // the function to create and return a card function make_card(title, description, price) { var doc = app.activeDocument; var title_frame = doc.textFrames.add(); title_frame.geometricBounds = [20, 80, 30, 150]; title_frame.contents = title; var description_frame = doc.textFrames.add(); description_frame.geometricBounds = [30, 80, 80, 150]; description_frame.contents = description; var price_frame = doc.textFrames.add(); price_frame.geometricBounds = [80, 80, 100, 150]; price_frame.contents = price; // apply styles to the texts in the card apply_style('title', title_frame); apply_style('description', description_frame); apply_style('price', price_frame); var group = doc.groups.add([title_frame, description_frame, price_frame]); return group; } function apply_style(style_name, frame) { var doc = app.activeDocument; try { var style = doc.paragraphStyles.itemByName(style_name); frame.paragraphs.everyItem().appliedParagraphStyle = style; } catch(e) {} }

Esta es la tabla XLSX:

ingrese la descripción de la imagen aquí

Aquí está el diseño del resultado (3 tarjetas):

ingrese la descripción de la imagen aquí

Crea tarjetas a partir de un archivo XLSX (aplica los estilos a los textos dentro de las tarjetas, ¿por qué no?) y las coloca en la página del documento actual.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda