A downloadable tool for Windows

Download NowName your own price

# LabelForge 1.0.0 — Explicación completa del proyecto

## Qué es

**LabelForge** es un programa de escritorio para **diseñar e imprimir etiquetas** (tipo Bartender/NiceLabel/ZebraDesigner), publicado como **4 productos** para Windows: versión completa (portable + instalador), demo de 20 días y versión Lite gratuita con funciones premium bloqueadas. Todo funciona **offline**, sin instalar nada en el sistema, y los proyectos viajan con el programa.

## Origen

Nació como una app web creada en **Base44** (React + backend cloud + login). El proyecto consistió en **liberarla de la nube**: eliminar el SDK de Base44 y ~60 dependencias cloud, y convertirla en un programa real con persistencia local y licenciamiento propio.

## Arquitectura

```

LabelForge.exe (C#, WinForms + WebView2 embebido)

│  Ventana propia, icono, metadatos de versión

│  Puente nativo C# ↔ JS (postMessage):

│    getPrinters | print | pickImage | query (ODBC)

│    exportData | importData | getAppIcon | getPaperSizes

│  Impresión NATIVA: PrintDocument → spooler de Windows

│    (protocolo por trozos printBegin/printPage/printCommit,

│     progreso por página, sin diálogos, sin encabezados)

│  Listado de impresoras con WMI (driver/puerto/estado)

│  Diálogos nativos de Windows (abrir/guardar/imagen)

│  Logging de diagnóstico (LabelForge.log + hook de errores JS)

│

dist\index.html (~5,6 MB, single-file)

│  Todo el editor: React 18 + Radix + Tailwind, inline sin red

│  HashRouter (compatible con file://)

│  CareSym.ttf embebido, base de impresoras embebida

│

Perfil\  → datos del usuario (localStorage del perfil Chromium), portable

```

**Métodos de impresión** (3): nativa (rasteriza a canvas → PNG → PrintDocument, sin navegador, sin encabezado posible), navegador (iframe aislado con @page) y PDF (jsPDF).

**Licenciamiento** (`FeatureGate` con `/define:LITE`): mismo código fuente, tres builds — Completa (todo), Demo (HardenedGate: 20 días, 1 registro/día, ventana de evaluación estilo WinRAR, anti-tamper por hash del exe, anti-VM/debugger, estado en 3 capas selladas con hash ligado a la máquina, reloj hacia atrás detectado), Lite (ilimitado, bloquea DB/PDF/navegador con ventana upsell bilingüe). Cada compilación limpia su estado automáticamente (`distribuir.cmd`).

## Funcionalidades

**Editor**: lienzo en **milímetros reales** (lo que ves es lo que sale), zoom con rueda centrado en cursor, pan, anclajes inteligentes con guías magenta, guías arrastrables desde las reglas, cuadrícula con snap, marquee, selección múltiple, mover con teclado (pasos configurables), copiar/cortar/pegar, alineación ×6, distribución ×2, orden Z, agrupar/desagrupar, bloquear/ocultar, igualar tamaño, deshacer/rehacer, atajos completos, **edición de texto inline** (doble clic sobre el objeto, editor flotante fiel) y **escalar texto al redimensionar** en cualquier eje.

**Objetos** (8): texto (autofit, truncado, justificado), imagen (embebida en data-URL, inversión monocroma), código de barras, QR, DataMatrix, rectángulo, círculo, polígono, línea — con esquinas redondeadas, estilos de línea, colores.

**Códigos de barras** (15): motor propio para Code39/Code128/EAN13 (verificado con vectores) + bwip-js para EAN8, UPC-A/E, Code93, ITF, ITF-14, GS1-128, GS1 DataBar, PDF417, Aztec.

**Datos**: fuentes CSV/Excel/JSON/base interna/ODBC (Access, SQL Server, SQLite vía el exe); detección de tipos, filtros AND/OR con 9 operadores, ordenamiento; **vinculación objeto↔campo en 3 clics** con vista del valor en vivo; motor de variables (contador por etiqueta, contador por página, fecha/hora/datetime, hora de impresión, contador min:seg, campo de datos con transformaciones ×12, expresiones con plantillas `{VAR}`).

**Impresoras**: detección del sistema con WMI, perfiles completos (DPI, márgenes, offsets, corte, velocidad...), cuadrícula tipo "Dispositivos e impresoras" con iconos por marca, **base de conocimiento de ~60 modelos** (Zebra/ZDesigner, TSC, Gainscha, Datamax-Oneil, Honeywell/Intermec, Xprinter, SATO, DYMO...) con match de patrón más largo y auto-relleno, filtro regional AR/ES, anti-duplicados.

**Extras**: asistente de nueva etiqueta (impresora→material→tamaño→layout), formato propio **.lblforge binario** (firma LBFG + XOR, no JSON abrible), respaldo/restauración, exportación ZPL + sistema de addons, importación de **PDF como áreas de trabajo** (medida real por página), galería de áreas con previews reales, validación de producción con mensajes concretos, preferencias persistentes, **bilingüe ES/EN** con detección automática y selector.

## Distribución

`distribuir.cmd` regenera todo: compila web (Vite) → 3 exes (csc.exe de .NET Framework, sin instalar nada) → 4 paquetes en `release\` (Portable ZIP, Setup con desinstalador y WebView2 auto-descargable, Demo ZIP, Lite ZIP) + README y CHANGELOG. Requisito del usuario final: Windows 10/11 x64 (WebView2 viene incluido normalmente).

## Lecciones del desarrollo (el "cómo" que nos dejó aquí)

- **Evidence-driven**: nunca editar a ciegas; leer el archivo real antes, verificar después (balances de llaves/paréntesis), y el hook global de errores JS en el host que convierte cada "pantalla en blanco" en una línea exacta de log.

- **replace: quirúrgico** para cambios pequeños; **file: canónico** cuando un archivo quedó en estado desconocido.

- El host instrumentado (log de arranque, errores JS con stack, veredictos de la demo) fue el instrumento que cerró todos los bugs de blanco y el anti-tamper.

## Estado y pendientes conocidos

**Sólido**: editor, datos, impresión nativa, formatos, licenciamiento, i18n parcial (menú/producción/galería/PDF/export done; paneles y managers pendientes de fase 3).

**Deudas técnicas** (con su solución ya diseñada): impresión rasterizada → vectorial GDI; perfil con offsets/rotación pendientes de aplicar en la impresión; hoja multi-etiqueta A4; localStorage → IndexedDB; hit-test sin rotación; asistente ODBC en UI; cacheo de previews de galería; limpieza de `fix-*.mjs` de la raíz; sin firma de código digital (SmartScreen avisa); sin auto-actualización.

En resumen: de una web cloud a un **producto de escritorio en 4 variantes, bilingüe, offline y listo para windbeam.itch.io** — con un pipeline de construcción y un sistema de diagnóstico que permiten seguir evolucionándolo con seguridad.

Download

Download NowName your own price

Click download now to get access to the following files:

LabelForge-Demo-1.0.0.zip 1.9 MB
LabelForge-Lite-1.0.0.zip 1.9 MB
LabelForge-Portable-1.0.0.zip 1.9 MB
if you pay $20 USD or more

Leave a comment

Log in with itch.io to leave a comment.