-
Notifications
You must be signed in to change notification settings - Fork 0
Implementar funcionalidad AutoHt para páginas de altura automática #6
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Descripción
Implementar la funcionalidad para el campo AutoHt en el tipo PageSize que permite que las páginas crezcan automáticamente según su contenido.
Casos de uso
- Papel de impresora térmica: Las impresoras térmicas (tickets, recibos) necesitan que el papel se extienda según el contenido sin una altura fija predefinida.
- Reportes dinámicos: Documentos donde el contenido puede variar significativamente y se necesita ajuste automático de altura.
- Facturas y recibos: Documentos con número variable de elementos que requieren altura dinámica.
Funcionalidad propuesta
Campo AutoHt
type PageSize struct {
Wd, Ht float64
AutoHt bool // Cuando es true, la altura se ajusta automáticamente según el contenido
}Comportamiento esperado
- Cuando
AutoHt = false: Comportamiento actual (altura fija) - Cuando
AutoHt = true:- La altura inicial
Htactúa como altura mínima - La página crece automáticamente cuando el contenido excede la altura actual
- No hay saltos de página automáticos
- La altura final se determina cuando se completa el contenido
- La altura inicial
Métodos a implementar/modificar
Nuevos métodos para PageSize
// SetAutoHeight habilita/deshabilita el crecimiento automático
func (ps *PageSize) SetAutoHeight(auto bool) PageSize
// IsAutoHeight verifica si está habilitado el crecimiento automático
func (ps PageSize) IsAutoHeight() bool
// GetMinHeight obtiene la altura mínima (valor inicial de Ht)
func (ps PageSize) GetMinHeight() float64Métodos existentes a modificar
AddPage(): Detectar y manejar páginas con AutoHtAddPageFormat(): Soporte completo para PageSize con AutoHtbeginpage(): Inicialización especial para páginas auto-heightCell(),MultiCell(),Write(): Verificar y ajustar altura según sea necesario
Prioridad
Media - Funcionalidad útil pero no crítica para operación básica
Estimación
- Fase 1: 1-2 días (Infraestructura básica)
- Fase 2: 2-3 días (Integración con métodos de contenido)
- Fase 3: 1-2 días (Optimización y testing)
- Total: 4-7 días de desarrollo
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request