fpd_ascii_text_drawer 1.0.1
fpd_ascii_text_drawer: ^1.0.1 copied to clipboard
Dibujador de texto ASCII
fpd_ascii_text_drawer #
🎨 FPD ASCII Text Drawer - Un package Dart para convertir texto a arte ASCII usando más de 400 fuentes diferentes.
✨ Características #
- 🎭 400+ fuentes ASCII art disponibles
- ⚡ Conversión asíncrona de texto
- 📏 Ancho personalizable para el texto
- 🛡️ Manejo robusto de errores
- ✅ Validación de fuentes
- 📱 API simple y fácil de usar
- 🧪 Tests completos
- 📚 Documentación detallada
🚀 Instalación #
Agrega la dependencia a tu pubspec.yaml:
dependencies:
fpd_ascii_text_drawer: ^1.0.0
Luego ejecuta:
dart pub get
📖 Uso básico #
import 'package:fpd_ascii_text_drawer/fpd_ascii_text_drawer.dart';
void main() async {
// Conversión básica
final asciiArt = await AsciiTextService.convertToAscii('Hello World');
print(asciiArt);
// Con fuente específica
final bigText = await AsciiTextService.convertToAscii(
'FPD Tools',
font: 'Big',
);
print(bigText);
}
🎭 Fuentes populares #
| Fuente | Descripción | Ejemplo |
|---|---|---|
Standard |
Fuente clásica | Hello |
Big |
Texto grande y llamativo | Hello |
Block |
Estilo de bloques | Hello |
Shadow |
Con sombra | Hello |
3D |
Efecto 3D | Hello |
Star Wars |
Estilo Star Wars | Hello |
Bloody |
Estilo sangriento | Hello |
Gothic |
Estilo gótico | Hello |
🔧 API Reference #
AsciiTextService #
convertToAscii(String text, {String font = 'Standard', int? width})
Convierte texto a arte ASCII.
Parámetros:
text- El texto a convertirfont- La fuente a usar (por defecto 'Standard')width- El ancho máximo del texto (opcional)
Retorna: Future<String> - El texto convertido a ASCII art
Ejemplo:
final result = await AsciiTextService.convertToAscii(
'Hello World',
font: 'Big',
width: 80,
);
getAvailableFonts()
Obtiene la lista de todas las fuentes disponibles.
Retorna: List<String> - Lista inmutable de fuentes
Ejemplo:
final fonts = AsciiTextService.getAvailableFonts();
print('Total de fuentes: ${fonts.length}');
isFontAvailable(String font)
Verifica si una fuente está disponible.
Parámetros:
font- El nombre de la fuente a verificar
Retorna: bool - true si la fuente está disponible
Ejemplo:
if (AsciiTextService.isFontAvailable('Big')) {
// Usar la fuente Big
}
🛡️ Manejo de errores #
El package lanza AsciiTextException cuando ocurre un error:
try {
final result = await AsciiTextService.convertToAscii('Hello', font: 'InvalidFont');
print(result);
} on AsciiTextException catch (e) {
print('Error: ${e.message}');
print('Código de estado: ${e.statusCode}');
}
📝 Ejemplos completos #
Ejemplo 1: Conversión con diferentes fuentes #
import 'package:fpd_ascii_text_drawer/fpd_ascii_text_drawer.dart';
void main() async {
final fonts = ['Standard', 'Big', 'Block', 'Shadow'];
for (final font in fonts) {
try {
print('\n📖 Fuente: $font');
final result = await AsciiTextService.convertToAscii('FPD', font: font);
print(result);
} on AsciiTextException catch (e) {
print('Error con fuente $font: ${e.message}');
}
}
}
Ejemplo 2: Con ancho personalizado #
final result = await AsciiTextService.convertToAscii(
'Este es un texto largo que se ajustará al ancho especificado',
font: 'Standard',
width: 40,
);
print(result);
Ejemplo 3: Información sobre fuentes #
final availableFonts = AsciiTextService.getAvailableFonts();
print('Total de fuentes disponibles: ${availableFonts.length}');
final popularFonts = ['Standard', 'Big', 'Block', 'Shadow', '3D', 'Star Wars'];
for (final font in popularFonts) {
final isAvailable = AsciiTextService.isFontAvailable(font);
print('$font: ${isAvailable ? '✅' : '❌'}');
}
🧪 Testing #
Ejecuta los tests:
dart test
Ejecuta el ejemplo:
dart run example/example.dart
📊 Rendimiento #
- Conversión rápida: La mayoría de conversiones se completan en menos de 1 segundo
- Manejo eficiente: Soporte para múltiples requests simultáneos
- Caché inteligente: Optimizado para requests repetidos
🤝 Contribuir #
¡Las contribuciones son bienvenidas! Por favor:
- Fork el repositorio
- Crea una rama para tu feature (
git checkout -b feature/amazing-feature) - Commit tus cambios (
git commit -m 'Add amazing feature') - Push a la rama (
git push origin feature/amazing-feature) - Abre un Pull Request
📄 Licencia #
Este proyecto está licenciado bajo la Licencia MIT - ver el archivo LICENSE para detalles.
🙏 Agradecimientos #
- figlet - Librería original de ASCII art
- FlutterPilot - Plataforma de desarrollo
📞 Soporte #
- 📧 Email: support@flutterpilot.dev
- 🐛 Issues: GitHub Issues
- 📖 Documentación: GitHub README
Desarrollado con ❤️ por el equipo FlutterPilot