Skip to main content

PrintTemplate Properties

TemplateId
string
Identificador único de la plantilla de impresión.
Name
string
Nombre descriptivo de la plantilla.
DocumentType
string
Tipo de documento al que aplica esta plantilla (ej. “ticket_venta”, “comanda”, “factura_electronica”).
Sections
array
Lista de secciones que componen la plantilla. Cada sección representa una parte lógica del ticket.
GlobalStyles
object
Diccionario de estilos globales aplicables a toda la plantilla.

TemplateSection Properties

Representa una sección lógica dentro del ticket (ej: Header, Items, Totals, Footer).
Name
string
Nombre identificador de la sección (ej. “Header”, “Items”, “Totals”, “Footer”).
Type
string
Tipo de sección: “Static”, “Table”, “Repeated”.
DataSource
string
Ruta al objeto de datos que alimenta esta sección (ej. “Document.Items”).
Format
string
Formato global para la sección (ej. “Bold”, “Large”).
Align
string
Alineación global para la sección (“Left”, “Center”, “Right”).
Order
integer
Orden de impresión de la sección en el ticket.
Elements
array
Lista de elementos que componen esta sección.

TemplateElement Properties

Define un elemento individual o una columna dentro de una sección.
Type
string
Tipo de elemento: “Text”, “Barcode”, “QR”, “Image”, “Line”.
Label
string
Texto estático antes del valor (etiqueta del campo).
Source
string
Ruta de la propiedad del modelo de datos (ej: “Sale.Number”, “Customer.Name”).
StaticValue
string
Valor fijo si Source es nulo. Útil para textos estáticos.
Format
string
Formato del elemento: “Bold”, “Large”, “Italic”, etc.
Align
string
Alineación del elemento: “Left”, “Center”, “Right”.
HeaderFormat
string
Formato específico para el encabezado de la columna (en tablas).
HeaderAlign
string
Alineación específica para el encabezado de la columna (en tablas).
WidthPercentage
integer
Porcentaje de ancho para columnas de tabla (0-100).
Columns
integer
Número de columnas para elementos múltiples por fila (ej: barcodes).
BarWidth
integer
Ancho del módulo de código de barras (1-5).
Height
integer
Altura del código de barras o imagen (1-255).
Size
integer
Tamaño para QR (1-16) u otros elementos.
Order
integer
Posición del elemento dentro de la sección.
Properties
object
Diccionario de propiedades adicionales específicas del elemento.

JSON Example

{
  "TemplateId": "template_ticket_venta_v1",
  "Name": "Ticket de Venta Estándar",
  "DocumentType": "ticket_venta",
  "Sections": [
    {
      "Name": "Header",
      "Type": "Static",
      "DataSource": "Document",
      "Format": "Bold",
      "Align": "Center",
      "Order": 1,
      "Elements": [
        {
          "Type": "Text",
          "Source": "Company.Name",
          "Format": "Large,Bold",
          "Align": "Center",
          "Order": 1
        },
        {
          "Type": "Text",
          "Label": "NIT: ",
          "Source": "Company.TaxId",
          "Align": "Center",
          "Order": 2
        }
      ]
    },
    {
      "Name": "Items",
      "Type": "Table",
      "DataSource": "Document.Items",
      "Order": 2,
      "Elements": [
        {
          "Type": "Text",
          "Label": "Cant",
          "Source": "Quantity",
          "WidthPercentage": 15,
          "HeaderFormat": "Bold",
          "Order": 1
        },
        {
          "Type": "Text",
          "Label": "Descripción",
          "Source": "Description",
          "WidthPercentage": 50,
          "HeaderFormat": "Bold",
          "Order": 2
        },
        {
          "Type": "Text",
          "Label": "Total",
          "Source": "Total",
          "WidthPercentage": 35,
          "Align": "Right",
          "HeaderFormat": "Bold",
          "HeaderAlign": "Right",
          "Order": 3
        }
      ]
    },
    {
      "Name": "Totals",
      "Type": "Static",
      "DataSource": "Document",
      "Order": 3,
      "Elements": [
        {
          "Type": "Text",
          "Label": "TOTAL: ",
          "Source": "Total",
          "Format": "Large,Bold",
          "Align": "Right",
          "Order": 1
        }
      ]
    },
    {
      "Name": "Footer",
      "Type": "Static",
      "Order": 4,
      "Elements": [
        {
          "Type": "QR",
          "Source": "Document.QRData",
          "Size": 6,
          "Align": "Center",
          "Order": 1
        },
        {
          "Type": "Text",
          "StaticValue": "Gracias por su compra",
          "Align": "Center",
          "Order": 2
        }
      ]
    }
  ],
  "GlobalStyles": {
    "FontFamily": "Monospace",
    "FontSize": "12"
  }
}

Build docs developers (and LLMs) love