Herramienta para crear fuentes
Esta aplicación permite exportar las fuentes instaladas en el sistema como una imagen a un fichero del tipo bmp, gif, png o jpg y un fichero que describe la ubicación y dimensiones de cada carácter dentro de la imagen.
Se permite indicar los caracteres a exportar no teniendo porque exportar todos. Dispone de un menú para seleccionar los caracteres más comunes como las minúsculas, las mayúsculas, los dígitos del 0 al 9, etc. lo que evita al usuario tener que teclear dichos caracteres.
También se permite configurar el tipo de fuente, su tamaño, color, si esta en negrita, cursiva, el formato de la imagen (png, bmp, gif, jpg), las dimensiones de la imagen, el color que será considerado como transparente y el espacio que se dejará entre caracteres. La imagen puede crearse haciendo uso del anti-aliasing, lo cual tiene la ventaja de que los bordes de las caracteres quedan más suavizados.
Todos los datos establecidos en la la herramienta se conservan para la siguiente ejecución, con lo que no es necesario volver a introducir dichos datos.
Se ofrece la posibilidad de previsualizar la imagen antes de proceder a su exportación.
Una de las características más interesantes de la herramienta es la enorme flexibilidad para exportar los datos a diferentes formatos y la facilidad para incorporar nuevos formatos personalizados mediante un sistema de plugins.
Independientemente del formato de exportación, los valores que se guardarán en el fichero serán el ancho y el alto de la imagen en pixeles, el espacio entre caracteres y por cada carácter la posición expresada en pixels tanto en X como en Y y el ancho y alto del carácter.
Inicialmente la herramienta cuenta con cinco formatos para exportar las fuentes:
- Fichero CSV: Valores separados por comas (en este paso por ![]()
- Fichero XML: XML donde cada carácter es un nodo, que contiene cuatro nodos hijos con los diferentes valores
- Fichero XML Atributos: XML donde cada carácter es un nodo que tiene cuatro atributos con los diferentes valores
- Fichero Binario: Los datos se guardan en un fichero binario
- Fichero Texto: Los datos se guardan como texto plano
La forma de crear plugins para extender la funcionalidad de la herramienta incorporándola nuevos formatos de exportación consiste en crear una dll que contenga la clase o clases con los nuevos formatos. Cada clase que proporcione un nuevo formato debe implementar la interfaz IPersistir que tiene la siguiente definición:
-
Public Interface IPersistir
-
-
''' <summary>
-
''' Nombre del plugin
-
''' </summary>
-
''' <value></value>
-
''' <returns></returns>
-
''' <remarks></remarks>
-
ReadOnly Property Nombre() As String
-
-
''' <summary>
-
''' Escribe en un fichero la información de la fuente
-
''' </summary>
-
''' <param name="ficheroSalidaSinExtension">Ruta del fichero (sin incluir la extension) en el que
-
''' se escribirá la información de los caracteres</param>
-
''' <param name="anchoImagen">Ancho en pixeles de la imagen</param>
-
''' <param name="altoImagen">Alto en pixeles de la imagen</param>
-
''' <param name="separacionEntreCaracteres">Número de pixels de separación entre carácter y carácter</param>
-
''' <param name="caracteres">Carácteres a escribir junto con su información</param>
-
''' <remarks></remarks>
-
Sub Escribir(ByVal ficheroSalidaSinExtension As String, ByVal anchoImagen As Integer, ByVal altoImagen As Integer, ByVal separacionEntreCaracteres As Integer, ByVal caracteres As Dictionary(Of Char, Rectangle))
-
-
End Interface
El nombre del plugin será el que posteriormente se mostrará dentro del menú "Guardar Como" de la herramienta
Como ejemplo se muestra a continuación la implementación del plugin que permite guardar los datos como XML con atributos:
-
Imports ExportadorFuentes
-
-
Public Class PersistirXMLAtributos
-
Implements IPersistir
-
-
Public ReadOnly Property Nombre() As String Implements IPersistir.Nombre
-
Get
-
Return "XML Atributos"
-
End Get
-
End Property
-
-
Public Sub Escribir(ByVal ficheroSalidaSinExtension As String, ByVal anchoImagen As Integer, ByVal altoImagen As Integer, ByVal separacionEntreCaracteres As Integer, ByVal caracteres As System.Collections.Generic.Dictionary(Of Char, System.Drawing.Rectangle)) Implements IPersistir.Escribir
-
Dim w As Xml.XmlTextWriter = Nothing
-
Dim c As Char
-
-
Try
-
w = New Xml.XmlTextWriter(ficheroSalidaSinExtension & ".xml", System.Text.Encoding.UTF8)
-
w.Formatting = Xml.Formatting.Indented
-
-
w.WriteStartElement("Fuente")
-
w.WriteAttributeString("AnchoImagen", anchoImagen.ToString)
-
w.WriteAttributeString("AltoImagen", altoImagen.ToString)
-
w.WriteAttributeString("SeparacionEntreCaracteres", separacionEntreCaracteres.ToString)
-
w.WriteEndElement()
-
-
For Each c In caracteres.Keys
-
w.WriteStartElement(c.ToString)
-
w.WriteAttributeString("X", caracteres(c).Left.ToString)
-
w.WriteAttributeString("Y", caracteres(c).Top.ToString)
-
w.WriteAttributeString("Ancho", caracteres(c).Width.ToString)
-
w.WriteAttributeString("Alto", caracteres(c).Height.ToString)
-
w.WriteEndElement()
-
Next
-
-
Catch ex As Exception
-
MsgBox(ex.Message)
-
Finally
-
If Not w Is Nothing Then
-
w.Close()
-
End If
-
End Try
-
End Sub
-
-
End Class
La dll con el o los plugins debe copiarse en el mismo directorio en que se encuentre el ejecutable de la aplicación.
La herramienta ha sido desarrollada en Visual Basic.NET (VB.NET) y están disponibles para su descarga en la sección de descargas tanto el código fuente como los ejecutables.
La solución cuenta con dos proyectos: el creador o exportador de fuentes y uno para los plugins. El proyecto del exportador o creador de fuentes consta principalmente de dos elementos, el interfaz IPersistir y el formulario que es el que realiza la mayoría de las acciones. El proyecto de los plugins cuenta con cinco clases que implementan otros tantos tipos de formas de exportar los datos.
Abril 20th, 2008 at 16:46
Me parece genial esta herramienta, a mas de uno le ahorrará mucho trabajo