Planado permite personalizar el diseño de impresión del trabajo según tus necesidades. Puedes cambiar la forma en que se muestran los campos, resaltar la información importante, añadir o quitar campos. También puedes cambiar el formato del diseño de impresión de PDF a HTML.
El diseño del trabajo se edita mediante un archivo HTML. Como lenguaje de marcado se utiliza Liquid. Puedes consultar su documentación en el sitio web oficial.
Diseño predeterminado del trabajo
Antes de añadir tus propios diseños de impresión personalizados, tendrás disponible un diseño de impresión predeterminado. Para ver cómo se muestra el trabajo con este diseño, abre cualquier trabajo y pulsa el botón Imprimir.
Imprimir trabajo
Planado imprimirá tu trabajo en un archivo PDF.
Diseño de impresión predeterminado del trabajo
Para crear tus propios diseños de impresión en el futuro, descarga el diseño de impresión predeterminado.
Puedes encontrarlo en Ajustes → Impresión. Para descargar el archivo del diseño predeterminado, pulsa en "Diseño predeterminado" y selecciona "Descargar".
Descargar el diseño de impresión predeterminado
Después de esto, se descargará un archivo HTML con el diseño de impresión. Puedes abrir este archivo en cualquier editor de HTML que prefieras. En este ejemplo se utilizará Notepad++.
Actualmente, el diseño de impresión predeterminado no está disponible para edición.
Diseño de impresión predeterminado
Variables (placeholders)
Para representar los campos de Planado en el archivo del diseño, se utilizan variables (placeholders). Los campos se encierran entre dobles llaves. Por ejemplo: {{ job.template.name }}
— es el placeholder para la plantilla del trabajo. Si deseas obtener el nombre del campo traducido al ruso, debes colocar la variable entre comillas y agregar el filtro | translate
.
Por ejemplo: {{ 'scheduled_at' | translate }}
mostrará el texto «Programado». Para mostrar los campos del trabajo en el diseño de impresión, utiliza estas variables:
job
— "Trabajo"job.serial_no
— número del trabajojob.status
— estado del trabajojob.template
— plantilla del trabajotemplate
— "Plantilla"type
— "Tipo"job.type.code
— tipo del trabajoscheduled_at
— "Programado"job.scheduled_at
— fecha y hora programada del trabajoduration
— "Duración"job.scheduled_duration
— duración programada del trabajoen_route_at
— "De camino"job.en_route_at
— fecha y hora de salida hacia el trabajostarted_at
— "Comenzado"job.started_at
— fecha y hora de inicio del trabajofinished_at
— "Finalizado"job.finished_at
— fecha y hora de finalización del trabajocreated_at
— "Creado"job.created_at
— fecha y hora de creación del trabajojob.creator.name
— nombre del usuario que creó el trabajoassignee
— "Asignado"job.assignee
— persona asignada al trabajo (si es un solo usuario)job.team
— equipo asignado al trabajo (si es una brigada)description
— "Descripción"job.description
— descripción del trabajoaddress
— "Dirección"job.address.full
— dirección del trabajoclient
— "Cliente"job.client.name
— nombre del cliente o de la empresasite
— "Sitio"job.site.name
— nombre del sitioresolution
— "Resolución"job.resolution.name
— tipo de resolución del trabajojob.resolution.comment
— comentarios de la resoluciónexternal_id
— "ID externa"job.external_id
— ID externa del trabajocontacts
— "Contactos"contact.name
— nombre del contactocontact.value
— número de teléfono del contactofield.name
— nombre del campo (campo adicional o de informe)
Todas estas variables y sus usos se encuentran en el diseño de impresión predeterminado.
A continuación, veremos las herramientas básicas del lenguaje Shopify Liquid.
Operadores de Shopify Liquid
Shopify Liquid es un lenguaje de marcado. Permite cambiar dinámicamente el contenido del formulario según tu trabajo.
Operadores de salida:
{{ }}: Muestra el valor de una variable o el resultado de una expresión, como se explicó anteriormente.
{{ job.serial_no }} {{ job.scheduled_at | datetime }}
En este caso, se mostrarán en el formulario el número del trabajo y su fecha programada.
{% %}: Se usa para controlar la lógica y los bucles. Por ejemplo, con el operador
if
.{% if job.type %} <div class="field"> ... </div> {% endif %}
En este ejemplo, el contenido del
<div>
solo se muestra si existe un tipo de trabajo.
1. if - Expresiones condicionales:
Con el operador if
, puedes establecer condiciones para mostrar información en el diseño de impresión. La información aparecerá solo si se cumple la condición especificada.
Sintaxis:
{% if condition %} // Código que se ejecuta si la condición es verdadera
...
{% elsif condition2 %}// Código que se ejecuta si la primera condición es falsa y la segunda es verdadera...
{% else %} // Código que se ejecuta si todas las condiciones anteriores son falsas...
{% endif %}Ejemplo: Verificar si está completada la dirección del cliente:
{% assign address_present = job.address.formatted | filled? %}
{% if address_present %}
<div class="field">
<label>{{ 'address' | translate }}</label>
<span class="value">
<span class="multiline-text">{{ job.address.full }}</span>
</span>
</div>
{% endif %}- Uso de elsif: Verificar si hay un asignado o un equipo:
<div class="field">
<label>{{ 'assignee' | translate }}</label>
{% if job.assignee %}
<span class="value">{{ job.assignee }}</span>
{% elsif job.team %}
<span class="value">{{ job.team }}</span>
{% else %}
<span class="value empty-value">{{ 'empty' | translate }}</span>
{% endif %}
</div>
2. for - Bucles:
Se utiliza para recorrer listas o arreglos de datos. Por ejemplo, para mostrar todos los campos del informe del trabajo.
Sintaxis:
{% for item in items %} // El código se ejecuta para cada elemento del arreglo
"items"
...
{% endfor %}Ejemplo: Mostrar contactos:
{% for contact in job.filled_contacts %}
<div class="field contact">
<label>
{% if forloop.first %}
{{ 'contacts' | translate }}
{% endif %}
</label>
<span class="value">
{{ contact.value }}{% if contact.name and contact.value %}, {% endif %}
{{ contact.name }}
</span>
</div>
{% endfor %}
3. case – Selección condicional:
Al igual que if, se utiliza para establecer condiciones.
Sintaxis:
{% case variable %}
{% when value1 %} // Código que se ejecuta si la variable es igual a "value1
{% when value2 %}// Código que se ejecuta si la variable es igual a "value2"
{% else %} // Código que se ejecuta si la variable no coincide con ningún valor
{% endcase %}Ejemplo: Manejo de diferentes tipos de campos:
{% for field in job.report_fields %}
<div class="field">
<label>{{ field.name }}</label>
{% case field.field_type %}
{% when 'input' %}
...
{% when 'action' %}
...
{% when 'checkbox' %}
...
{% else %}
...
{% endcase %}
</div> {% endfor %}
Operadores de comparación:
==: Verifica si dos valores son iguales.
{% if job.description == "" %}
<span class="value empty-value">{{ 'empty'| translate }}</span>
{% endif %}
En el ejemplo, el valor vacío se mostrará solo cuando la descripción esté vacía.
!=: Verifica si dos valores no son iguales.
{% if job.resolution.comment != "" %}
<span class="value"> ... </span>
{% endif %}
De forma similar, se pueden usar otros operadores:
>: Mayor que.
<: Menor que.
>=: Mayor o igual que.
<=: Menor o igual que.
Operadores lógicos:
and: Lógico “Y” — el valor se muestra solo cuando ambas condiciones se cumplen.
{% if job.template == "Entrega" and job.assignee.name == "Iván Rodrigez" %} Entrega de Rodrigez {% endif %}
or: Lógico “O” — el valor se muestra si al menos una de las condiciones se cumple.
{% if job.assignee or job.team %} ... {% endif %}
not: Negación lógica.
{% if not job.description %} ... {% endif %}
Дополнительные операторы:
empty: Проверяет, является ли переменная пустой.
{% if job.resolution.comment | empty %} ... {% endif %}
filled: Проверяет, является ли переменная непустой.
{% if job.description | filled %} ... {% endif %}
Filtros:
datetime: Convierte una fecha a un formato legible que incluye la hora.
truncate: Corta una cadena de texto a una longitud determinada.
translate: Traduce una cadena al idioma configurado en tu Portal del cliente Planado.
A continuación, analizaremos algunas opciones para editar este archivo y así obtener el diseño de impresión deseado.
Puedes encontrar el diseño de impresión mostrado en el ejemplo en el archivo adjunto a esta instrucción.
Sustitución del logotipo de la empresa
Editar el diseño del trabajo permite reemplazar el logotipo de Planado en el diseño de impresión por el logotipo de su empresa.
Para ello se utiliza el campo custom-logo.
El logotipo en el diseño de impresión del trabajo debe estar en formato base64. Para convertir su logotipo a este formato, utilice un conversor en línea. El código resultante se podrá utilizar para insertarlo en el diseño de impresión.
A la izquierda: el logotipo de la empresa en formato PNG, a la derecha: en formato base64.
En el cuerpo del diseño de impresión, reemplace el campo existente logo por custom-logo.
Logo antes y después de la conversión
Después de esto, se pueden establecer las dimensiones del logotipo para que se vea mejor en el diseño de impresión. El logotipo tendrá mejor apariencia si su tamaño está entre 100 y 200 píxeles de ancho y alto. Es recomendable establecer dimensiones proporcionales a las originales. Por ejemplo, si el archivo original tenía un tamaño de 1920×1080, en el archivo se deben indicar dimensiones de 192×108. El ancho se define con el parámetro width y la altura con height. En nuestro ejemplo, el tamaño original del logotipo era 1200×1200, así que lo reduciremos a 120×120.
Imagen del logotipo agregado
Para cargar el archivo de diseño de impresión resultante, ve a la página Ajustes → Impresión en Planado y haz clic en "Agregar diseño".
Agregar diseño de impresión
En la ventana que se abre, introduce el nombre del diseño de impresión y carga el archivo HTML del diseño que contiene el nuevo logotipo. Según tus necesidades, elige el formato del archivo de salida. En este ejemplo, utilizamos PDF.
Cargar nuevo diseño de impresión
Para comprobar cómo se ve el diseño de impresión del trabajo, abre el trabajo, haz clic en el botón de impresión y selecciona el diseño que has añadido.
Después de esto, comenzará la descarga del diseño de impresión del trabajo.
Diseño de impresión del trabajo con el logotipo modificado
En el diseño generado, en lugar del logotipo de Planado se usará el logotipo que hayas cargado.
Si necesitas ajustar el tamaño del logotipo, puedes hacer cambios directamente en el archivo HTML del diseño del trabajo y volver a subir el archivo.
Reemplazar archivo del diseño de impresión
Agregar fotografías al diseño de impresión
De forma predeterminada, los valores de los campos de foto se muestran como nombres de archivo.
Si necesitas que se muestren como imágenes, deberás hacer modificaciones en el diseño de impresión.
Nombres de archivos en los campos con fotos
Las reglas para mostrar fotografías se encuentran en la parte de los campos del informe:
Del código se puede ver que, si hay imágenes en un campo con el tipo “Foto”, solo se muestra el nombre del archivo — {{ image.name }}. Para que se muestre la imagen, es necesario especificarla en la plantilla. Modificamos esta parte del código para que en lugar del nombre del archivo se muestre la imagen:
Ahora, en lugar del nombre del archivo de la fotografía, se muestra la propia fotografía. Pero la imagen aparecerá en la plantilla en su tamaño original.
Trabajo impreso con fotos en tamaño original
A menudo, este tamaño es muy grande y conviene reducirlo. Indicaremos el filtro correspondiente resize para {{ image }}.
En nuestro caso, las fotos tienen una resolución base de 1080 x 1920, por lo que en la plantilla utilizamos un tamaño 10 veces menor. También añadimos un espacio después de cada foto, para que no queden muy juntas.
Fotos en el trabajo impreso con tamaño reducido y espacio entre ellas
En la plantilla resultante, las fotografías tienen un tamaño adecuado y están separadas entre sí.
También podemos añadir un contador que mueva las fotos a una nueva línea si hay más de 3 en una sola fila. Para ello se utilizan dos clases <div>: image-row y image-wrapper.
Dado que ahora las fotografías están dentro de sus propios <div>, ya no es necesario usar un espacio adicional después de cada una.
En este ejemplo, cada fotografía incrementa el valor del contador image_count, y cuando este alcanza el valor de 3, la siguiente imagen se mueve a una nueva línea. Así se verá el trabajo con seis fotografías en un solo campo al imprimirlo.
Trabajo impreso con seis fotos en un solo campo
Puedes encontrar la plantilla obtenida en el archivo adjunto a esta instrucción.
Formato de salida HTML
El formato de salida del trabajo impreso se puede cambiar de PDF a HTML. Las plantillas de impresión en formato HTML son más fáciles de editar en editores de texto como Microsoft Word o OpenOffice Writer. Por eso, si necesitas complementar la plantilla del trabajo después de exportarla, te recomendamos elegir HTML como formato de exportación. Para hacerlo:
- Abre Ajustes → Impresión;
- Selecciona la plantilla de impresión que necesites;
- Como formato de salida, elige HTML y haz clic en "Guardar".
Cambiar el formato de salida a HTML
Después de eso, esta Impresión del trabajo se exportará en formato HTML.
Impresión del trabajo en formato HTML
La impresión obtenida se puede editar en un editor de texto como un archivo común.
Si necesitas ayuda para configurar la plantilla de impresión del trabajo, contáctanos a través de support@planado.app o del portal de soporte técnico.