XSL - etiquetas xsl

 
Vista:

etiquetas xsl

Publicado por Ibon (3 intervenciones) el 21/06/2006 12:53:14
Hola, muy buenas.

Necesito algo de ayuda con un xsl-fo.

El objetivo es imprimir una etiquetas en la típica hoja de pegatinas. La cosa es que la hoja se divide en 10 pegatinas, una para cada etiqueta.
El problema me surje cuando se imprime la etiqueta a partir de un numero determidado de pegatinas. Por ejemplo: "tengo una hoja de dichas pegatinas, pero sólo tengo ya 6 pegatinas, habiendo utilizado en una ocasión anterior las 4 primeras.

La cosa es que tengo que hacer en el XSL-FO, para que me imprima a partir de una determinada posuición. en este casa a partide de la etiqueta numero 5.
Alguién me podría echar un cable, llevo ya varios días con esto y me esta volvoendo loco.

Gracias de antemando.

Un saludo y pasenlo bien...si nos dejan.

Ibon Caballero
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Imprimir etiquetas en una hoja de pegatinas desde una posición específica

Publicado por Alejandro (227 intervenciones) el 05/07/2023 21:59:02
Hola, Ibon.

Si entiendo correctamente, deseas imprimir etiquetas en una hoja de pegatinas usando XSL-FO, y quieres empezar a imprimir a partir de una posición específica en la hoja.

Una forma de lograr esto es utilizando las propiedades de diseño de XSL-FO para controlar la posición de las etiquetas en la hoja. Puedes usar las propiedades `margin-left` y `margin-top` para ajustar la posición de cada etiqueta.

Aquí hay un ejemplo básico de cómo puedes lograrlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
  xmlns:fo="http://www.w3.org/1999/XSL/Format">
 
  <xsl:template match="/">
    <fo:root>
      <fo:layout-master-set>
        <fo:simple-page-master master-name="page" page-height="297mm" page-width="210mm">
          <fo:region-body margin="0mm" />
        </fo:simple-page-master>
      </fo:layout-master-set>
      <fo:page-sequence master-reference="page">
        <fo:flow flow-name="xsl-region-body">
          <fo:block>
            <xsl:apply-templates select="etiquetas/etiqueta[position() &gt;= 5]" />
          </fo:block>
        </fo:flow>
      </fo:page-sequence>
    </fo:root>
  </xsl:template>
 
  <xsl:template match="etiquetas/etiqueta">
    <fo:block margin-left="50mm" margin-top="20mm">
      <!-- Aquí va el contenido de la etiqueta -->
      <xsl:value-of select="." />
    </fo:block>
  </xsl:template>
 
</xsl:stylesheet>

En este ejemplo, asumo que tienes una estructura XML con un elemento raíz llamado `etiquetas` y dentro de él, múltiples elementos `etiqueta`. El `xsl:apply-templates` selecciona las etiquetas a partir de la posición 5 y las procesa usando el `xsl:template` correspondiente.

Dentro del `xsl:template`, he usado el elemento `fo:block` para representar cada etiqueta y he ajustado las propiedades `margin-left` y `margin-top` para posicionar las etiquetas en la hoja de pegatinas. Puedes ajustar estos valores según tus necesidades.

Espero que esta solución te sea útil. ¡Buena suerte con tu proyecto de impresión de etiquetas!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar