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
Ht actú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
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() float64
Métodos existentes a modificar
AddPage(): Detectar y manejar páginas con AutoHt
AddPageFormat(): Soporte completo para PageSize con AutoHt
beginpage(): Inicialización especial para páginas auto-height
Cell(), 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
Descripción
Implementar la funcionalidad para el campo
AutoHten el tipoPageSizeque permite que las páginas crezcan automáticamente según su contenido.Casos de uso
Funcionalidad propuesta
Campo AutoHt
Comportamiento esperado
AutoHt = false: Comportamiento actual (altura fija)AutoHt = true:Htactúa como altura mínimaMétodos a implementar/modificar
Nuevos métodos para PageSize
Mé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 necesarioPrioridad
Media - Funcionalidad útil pero no crítica para operación básica
Estimación