Personalizar una Plantilla
Una vez que haya elegido un diseño de plantilla, será dirigido al editor de plantillas incorporado en la consola que le permite personalizar su plantilla y estilizarla según su preferencia. Para este documento de ayuda, ilustraremos la personalización de una plantilla usando la plantilla Certificate.
Tendrá secciones de editor respectivas para HTML, CSS y JavaScript para estilizar y personalizar su plantilla directamente en la consola, como se muestra a continuación.
Usar LiquidJS para Personalizar sus Plantillas
Catalyst SmartBrowz soporta el uso de LiquidJS para personalizar sus plantillas. LiquidJS es un lenguaje de plantillas de código abierto popular que puede aprovechar para crear rápidamente plantillas que se adapten a sus requisitos.
El contenido, los datos JSON (datos dinámicos) que carga en su plantilla están sujetos a cambios según su requisito. Usar LiquidJS para personalizar sus plantillas le permite aprovechar los filtros nativos para manejar de manera fluida estos datos dinámicos.
Los datos dinámicos para su plantilla deberán pasarse como un payload JSON. Por ejemplo, considere que está usando la plantilla Certificate, entonces el payload JSON deberá verse así:
{
"name": "Michelle Mascarenhas",
"workshop_name": "Serverless Computing",
"event_duration": "one day",
"event_description": "building cutting-edge cloud applications",
"team_name": "Zylker Technologies ",
"event_name": "Zylker Technologies Pvt. Ltd.,",
"event_location": "Manhattan, NewYork",
"event_date": "20th February 2025"
}
Sintaxis de LiquidJS
La siguiente tabla contiene la sintaxis necesaria de LiquidJS que puede aplicar a sus plantillas para personalizarlas y manejar datos JSON dinámicos.
| Tipo de Etiqueta | Sintaxis LiquidJS |
|---|---|
| Output | copy
|
| Logic (Control Flow) | copy
|
| Loops (For Statement) Iteración sobre un array |
copy
|
| Loops (For Statement) Usando Objeto Iterable |
copy
|
| Filters | copy
|
| Date Formatting | copy
|
| Assign and Capture Asignar variables dentro de plantillas |
copy
|
| Assign and Capture Capturar valores multilínea |
copy
|
| Comments | copy
|
| Default Filters Mostrará el valor que establezca como predeterminado, si no se proporciona ningún valor. |
copy
|
| Conditionals with unless Funciona como lo opuesto a una sentencia if. La lógica bajo un bloque unless solo se ejecutará si la condición es falsa. |
copy
|
| Case/When Conditions | copy
|
| Raw Output Se usa para imprimir código Liquid sin renderizarlo. Generalmente, se usa con fines de documentación |
copy
|
| Array and Object Filters | copy
|
| Math Filters Para usar operadores matemáticos dentro de la plantilla |
copy
|
| Rendering Partial Templates | copy
|
Ejemplo de Código HTML con LiquidJS
El siguiente fragmento de código sirve como ejemplo para ilustrar el uso de LiquidJS en el código HTML para personalizar su plantilla.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Dashboard - {{ user.name }}</title>
</head>
<body>
<!– Header –>
<header>
<h1>Hello, {{ user.name | default: “Guest” }}</h1>
{% if user.role == “admin” %}
<p class=“admin”>You have administrator access.</p>
{% else %}
<p class=“user”>Standard user access granted.</p>
{% endif %}
</header>
<!– Items Section –>
<section>
<h2>Your Items</h2>
<ul>
{% for item in items %}
<li>{{ forloop.index }}. {{ item.name }}</li>
{% endfor %}
</ul>
<p> <strong>First Item:</strong> {{ items | first | map: “name” }}</p>
<p> <strong>Total Items:</strong> {{ items | size }}</p>
</section>
<!– Pricing Section –>
<section>
<h2>Price Breakdown</h2>
<p>Original Price: ${{ price }}</p>
<p>After Discount ($10 off): ${{ price | minus: 10 }}</p>
<p>After Tax (10%): ${{ price | times: 1.1 }}</p>
<p>Half Price: ${{ price | divided_by: 2 }}</p>
</section>
<!– Time Section –>
<section>
<h2>Date & Time</h2>
<p>Current Timestamp: {{ “now” | date: “%Y-%m-%d %H:%M:%S” }}</p>
<p>Next Billing Date: {{ “2025-02-07” | date: “%B %d, %Y” }}</p>
</section>
<!– Custom Message –>
<section>
<h2>Message</h2>
{% assign greeting = “Hello” %}
<p>{{ greeting }} {{ user.name }}!</p>
{% if custom_message %}
<div class=“custom-message”>
{{ custom_message }}
</div>
{% else %}
<div class=“custom-message”>
No custom message provided.
</div>
{% endif %}
</section>
<!– User Role Case –>
<section>
<h2>Role Based Content</h2>
{% case user.role %}
{% when “admin” %}
<p>You are on the <strong>Admin Dashboard</strong>.</p>
{% when “user” %}
<p>You are on the <strong>User Dashboard</strong>.</p>
{% else %}
<p class=“alert”>Unknown role. Please contact support.</p>
{% endcase %}
{% unless user.role == "admin" %}
<p class="alert">You are not an admin.</p>
{% endunless %}
</section>
<!– Raw Display –>
<section>
<h2>Liquid Syntax Example</h2>
{% raw %}
To print user name: {{ user.name }}
{% endraw %}
</section>
</body>
</html>
Plantillas en Modo Borrador
Puede personalizar el código HTML, CSS y JavaScript según sus requisitos. Puede usar la sección JSON Data para pasar datos de entrada personalizados a la plantilla.
Para renderizar los cambios que realice en el editor, puede hacer clic en el botón Save as Draft.
Esto le permitirá ver los cambios que realice en su plantilla sin afectar la versión publicada.
Siempre puede ver la versión publicada de la plantilla haciendo clic en el botón View Published Version.
Una vez que haya completado las ediciones requeridas, puede renderizarlas en vivo haciendo clic en el botón Save & Publish.
Esta acción eliminará la versión en vivo actual y renderizará su borrador como la versión en vivo de la plantilla.
Descartar Borradores
Si no está satisfecho con sus ediciones y desea eliminar todos los cambios en su borrador, es decir, restaurar su plantilla a su última versión publicada, simplemente puede descartar el borrador.
Para descartar un borrador:
El borrador será eliminado. El código y las configuraciones que renderizan su plantilla a la última versión en vivo serán restaurados en el editor.
Personalizar la Orientación y el Diseño de la Plantilla
Usando la sección Settings, puede proteger con contraseña su documento visual, estilizar el diseño y la orientación del documento y también decidir su formato de salida.

En esta sección, use las diversas selecciones desplegables para personalizar las siguientes características de su plantilla:
Formato de Salida
Puede generar salidas para su plantilla en los siguientes formatos:
- HTML (Rendered): El formato de salida HTML (Rendered) descarga la plantilla como código HTML. Todo el estilo, las configuraciones y la plantilla en sí serán descargables como código HTML.
- PNG, JPEG.

Tamaño de Papel
SmartBrowz Templates le proporciona todas las opciones de tamaño de papel ISO 216 incluyendo una opción Custom para diseñar el diseño de papel de su plantilla
Orientación
SmartBrowz Templates le proporciona la opción de elegir la orientación de su plantilla. Tiene la opción de generar su plantilla en orientación Landscape o Portrait.
Gráficos de Fondo
SmartBrowz Templates le proporciona la opción de Enable o Disable los gráficos de fondo para su plantilla.
Opciones de Estilo Avanzadas
Puede cambiar aún más la orientación de los márgenes de su plantilla, haciendo clic en Show Advanced Styling Options.

-
Al configurar el Header y el Footer de su documento, puede proporcionar valores en el campo de entrada, o puede codificar su personalización en HTML seleccionando la opción HTML Code.
-
Al ingresar valores para el Header y el Footer, asegúrese de proporcionar 10px o más para ver el cambio en la sección de vista previa.
PDFs Protegidos con Contraseña
Templates le permite proteger con contraseña los documentos que se generan usando una plantilla. Puede establecer manualmente la contraseña para su plantilla, o puede codificar una lógica que instruya a Catalyst para establecer una contraseña dinámicamente.
Para proteger PDFs con contraseña, haga clic en el toggle Set Password for PDF:

-
Hay dos formas en las que puede establecer una contraseña para su PDF:
- De forma predeterminada, la opción Set Password Manually estará seleccionada. Elegir esta opción le permite establecer la contraseña para su PDF en la sección Playground del componente PDF & Screenshot.

Nota: También puede establecer manualmente la contraseña para su PDF usando esta API pasando su contraseña para el documento como un par clave-valor JSON "password" dentro del JSON "pdf_options".- Haga clic en la opción Set Password Dynamically para codificar una lógica personalizada que asegure que cada vez que se genere un PDF a partir de la plantilla, basándose en la lógica que codificó, se establecerá una contraseña para el documento automáticamente.

Para esta documentación de ayuda, hemos implementado el fragmento de código que se muestra a continuación:
- De forma predeterminada, la opción Set Password Manually estará seleccionada. Elegir esta opción le permite establecer la contraseña para su PDF en la sección Playground del componente PDF & Screenshot.
module.exports = (jsonData) => {
// Extraer las primeras cuatro letras de client.name
const clientName = jsonData.client.data[0].name.trim(); // Eliminar espacios al inicio/final
const firstNameLetters = clientName.substring(0, 4);
// Extraer los últimos cuatro dígitos de client.phn
const clientPhone = jsonData.client.data[0].phn.trim(); // Eliminar espacios al inicio/final
const lastFourDigits = clientPhone.slice(-4);
const password = ${firstNameLetters}${lastFourDigits};
//así la contraseña será "Amel2782"
return password;
};
El valor para la entrada jsonData se muestra a continuación:
{
"address": {
"name": "107 Traction Street,Green Ville",
"postal": "South carolina-600028"
},
"client": {
"data": [
{
"name": "Amelia Burrows",
"phn": "+1-212-6782782",
"start": "Monday,Feburary,28,2019",
"end": "Monday,March,28,2019"
}
]
}
}
El documento PDF generado a partir de esta plantilla tendrá un patrón de contraseña que es una combinación de su nombre y los últimos dígitos de su número de teléfono.
- Haga clic en Save & Publish, para aplicar la protección con contraseña a su plantilla.
Una vez que haya completado todas las personalizaciones de su plantilla, puede acceder a esta plantilla en cualquier momento desde el componente Templates.
Última actualización 2026-03-30 13:40:30 +0530 IST
Yes
No
Send your feedback to us











