XSL - 2 columnas de texto no se alinean

 
Vista:
sin imagen de perfil

2 columnas de texto no se alinean

Publicado por javi (1 intervención) el 22/08/2013 23:39:29
tengo un problema estoy haciendo un libro donde cada pagina esta dividida en 2 parrafos de texto(count=2) y no son tablas lo que quiero es que tanto por arriba como por el final de pagina esten alineadas correctamente las lineas de cada parrafo del final de cada pagina pero no doy con ello,alguna sugerencia?
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

Alineación de párrafos en libro de dos columnas

Publicado por Alejandro (227 intervenciones) el 07/07/2023 16:07:37
Puedes utilizar la tecnología XSL (eXtensible Stylesheet Language) para lograr la alineación adecuada de las líneas de los párrafos al final de cada página en tu libro de dos columnas. A continuación, se presenta una sugerencia de enfoque para resolver este problema:

1. Divide tu documento XML en secciones o páginas usando algún criterio apropiado.

2. Crea un archivo XSLT (XSL Transformations) para transformar tu documento XML en un formato de salida deseado, como HTML o PDF.

3. Define una estructura de plantilla en tu archivo XSLT para manejar las secciones o páginas de tu libro.

4. Dentro de la plantilla correspondiente a cada página, utiliza elementos `<fo:block>` (si estás generando un formato de salida PDF) o elementos `<div>` (si estás generando un formato de salida HTML) para representar cada columna.

5. Establece la propiedad `column-count` en 2 para dividir cada página en dos columnas.

6. Utiliza las propiedades CSS correspondientes, como `text-align` y `text-align-last`, para alinear correctamente las líneas de los párrafos al final de cada columna.

A continuación se muestra un ejemplo simplificado de cómo podrías estructurar tu archivo XSLT:

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
29
30
31
32
33
34
35
36
37
38
39
40
41
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <html>
      <head>
        <style>
          /* Estilos CSS para la alineación de las columnas */
          .columnas {
            -webkit-column-count: 2; /* Número de columnas */
            -moz-column-count: 2;
            column-count: 2;
            -webkit-column-gap: 20px; /* Espacio entre columnas */
            -moz-column-gap: 20px;
            column-gap: 20px;
            text-align: justify; /* Alineación del texto en las columnas */
          }
        </style>
      </head>
      <body>
        <xsl:apply-templates select="libro/pagina" />
      </body>
    </html>
  </xsl:template>
 
  <xsl:template match="pagina">
    <div class="columnas">
      <!-- Contenido de la columna 1 -->
      <xsl:apply-templates select="parrafo[position() mod 2 = 1]" />
    </div>
    <div class="columnas">
      <!-- Contenido de la columna 2 -->
      <xsl:apply-templates select="parrafo[position() mod 2 = 0]" />
    </div>
  </xsl:template>
 
  <xsl:template match="parrafo">
    <fo:block>
      <xsl:value-of select="." />
    </fo:block>
  </xsl:template>
</xsl:stylesheet>

Este ejemplo asume que estás generando un formato de salida HTML, pero puedes adaptar el código según tus necesidades, como generar un formato de salida PDF utilizando XSL-FO (Formatting Objects) en lugar de HTML.

Recuerda ajustar el código según la estructura real de tu documento XML y tus requisitos específicos. También puedes agregar estilos adicionales para personalizar la apariencia de tus páginas.

Espero que esta solución te sea útil para alinear correctamente las líneas de los párrafos en tu libro de dos columnas.
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