fonts - nueva - no puedo instalar fuentes en windows 10
¿Cómo convertir una fuente de mapa de bits(.FON) en una fuente TrueType(.TTF)? (10)
De acuerdo con la descripción del producto, BitFonter 3.0 parece poder hacer eso:
" Potente conversión de mapas de bits y fuentes de mapa de bits desde y hacia fuentes Type 1, TrueType y OpenType a través de la integración con FontLab Studio y TypeTool " .
Pero US $ 999 es un poco caro convertir solo una fuente.
Mi programa (win32, Delphi) necesita mostrar caracteres especiales en algunas columnas de una tabla. Para hacer eso uso una fuente especial para esas columnas. Tengo la fuente de mi cliente. Es una fuente .FON. Funciona bien en la pantalla, pero a menudo tengo problemas tan pronto como quiero usarlo para imprimir algo.
Me gustaría convertir esta fuente .FON en una fuente TrueType (.TTF) para evitar los problemas. No me importa si la fuente no se escala bien. Debería tener exactamente el mismo aspecto cuando se utiliza en la pantalla con el mismo tamaño que el tamaño predeterminado de la fuente original. ¿Alguien sabe una manera de hacer eso?
(No es necesario que necesite una solución de código fuente. La fuente no cambiará. Es suficiente si encuentro una herramienta para hacerlo)
Edición: lo ideal sería obtener una fuente TrueType en la que cada píxel de la fuente original se convierta en un cuadrado negro vectorial (lo probé redibujando algunos caracteres manualmente, funcionaría como quisiera).
Edición 2, solución utilizada: utilizando FontForge + Autotrace y luego haciendo correcciones manualmente, pude obtener una fuente vectorial que sigue el contorno de los píxeles de la fuente de mapa de bits. Esta fuente vectorial se escala algo mejor que la fuente original y resuelve mis problemas de impresión. Ver publicación aceptada para más detalles.
Pero todavía estoy interesado si alguien sabe una solución totalmente automatizada.
Descubrí que la ruta más fácil para obtener una buena versión TTF de un FON es utilizar uno de los editores de fuentes de mapas de bits en línea gratuitos. Debe ingresar manualmente cada glifo, pero el proceso es mucho más sencillo que tratar con FontForge. Hay dos editores que conozco, y ambos producen TTF que funcionan bien en Windows y Linux.
BitFontMaker es el más simple de los dos. Me gusta su interfaz limpia, pero terminé no usándola porque las fuentes monoespaciadas solo pueden tener un ancho de celda de 10 a 14 píxeles.
FontStruct requiere registro y utiliza una interfaz Flash. Pude hacer nuevas fuentes bastante rápido una vez que me acostumbré a la interfaz. (Podría ser una coincidencia, pero noté un aumento en el spam en la cuenta de correo electrónico que solía registrarme).
Ambos editores establecen el interlineado automáticamente. Un truco para obtener el espaciado que desea es agregar un píxel alto en un carácter y luego usar un editor de fuentes vectoriales para eliminarlo del TTF. (El tipo de luz funciona bien y es mucho más fácil de usar que FontForge).
Es poco probable que puedas lograrlo con una sencilla herramienta gratuita. http://www.fontlab.com tiene herramientas para hacerlo, pero son muy caras.
Me encontré buscando estas fuentes para usar con un proyecto en el que estoy trabajando. Me encogí ante la idea de editar manualmente todos los glifos como se menciona en las otras respuestas, y seguí buscando. Eventualmente, me topé con un sitio que tiene la fuente original así como algunas variantes .ttf
más nuevas. Si no te importa que algunos de los glifos hayan sido reasignados (todos están todavía presentes), esta es una buena alternativa: Oldschool PC Fonts . Como un bono adicional para mí, estos apoyos extendieron los scripts en latín, griego, cirílico y hebreo, además de un montón de glifos adicionales y símbolos Unicode.
No pude hacer que la función de rastreo automático funcionara, por lo que escribí un script en Python para trazar imágenes en blanco y negro en polígonos vectoriales, uno para cada píxel.
Así que con una carpeta de imágenes de glifos, puede convertirla en una carpeta de archivos svg
.
Luego, en Inkscape union + simplifique el camino para limpiar cada glifo. (podría ser factible en la línea de comandos con Inkscape)
Finalmente, importe el svg
correspondiente en FontForge para cada glifo.
-> script alojado en gist.gisthub.com
from PIL import Image
import svgwrite
import os
import argparse
def bmp_to_svg(filename, multiply =1):
img = Image.open(filename)
w, h = img.size
pixel_acc = img.load()
generated_paths = paths_gen(pixel_acc, w,h, multiply=multiply)
dwg = svgwrite.Drawing(profile=''tiny'')
for path in generated_paths:
options = path
kwoptions = {} #{"fill":"black"}
dwg.add(dwg.polygon(options, **kwoptions))
#clip_path = dwg.defs.add(dwg.clipPath())
#clip_path.add(dwg.Rect(insert=(0,0), size=((w*multiply)+1, (h*multiply)+1)))
return dwg
def paths_gen(pixel_acc, w, h, multiply = 1):
m = multiply
paths = []
for y in range(0,h):
for x in range(0,w):
pix = pixel_acc[x,y]
brightval = sum(pix) /3
if brightval < 128:
paths.append([
##top left
(x * m, y * m),
##top right
((x+1) * m, y * m),
##bottom right
((x+1) * m, (y+1) * m),
##bottom list
((x) * m, (y+1) * m),
##close back to top left
#(x, y),
])
return paths
def main():
parser = argparse.ArgumentParser(
description=''Script to convert black and white images into vector art'')
parser.add_argument("input_dir")
parser.add_argument("ouput_dir")
parser.add_argument("in_ext", default="bmp", help="file extension of images in input folder")
parser.add_argument("-m", "--multiply", default=1, type=int)
## TODO
#parser.add_argument("-u", "--union", store=True, help="unifies adjecent polgons")
#parser.add_argument("-s", "--simplify", store=True, help="removes points that are part of a straight line")
#parser.add_argument("-c", "--compress", store=True, help="same as ''--union --simplify''")
args = parser.parse_args()
cdir = os.path.abspath(args.input_dir)
fn_gen = ( x for x in os.listdir(cdir)
if x.endswith(''.''+args.in_ext)
)
for count, filename in enumerate(fn_gen):
full_filename = os.path.join(cdir, filename)
new_fn = "{}_.svg".format(filename)
new_fullfn = os.path.join(args.ouput_dir, new_fn)
svg = bmp_to_svg(full_filename, multiply=args.multiply)
print "Converted file: ''{}''".format(full_filename)
svg.filename = new_fullfn
svg.save()
if __name__ == ''__main__'':
main()
Para aquellos que no quieren compilar Fontforge (para Windows) descargue una descarga aquí: http://www.mpetroff.net/software/fontforge-windows/
Esa versión utiliza potrace en lugar de autotrace. Los mejores parámetros que obtuve para la fuente que estaba convirtiendo (vgasys.fon) fueron:
--turdsize 0 --opttolerance 0 --unit 1 --longcurve --gamma 0 --blacklevel 0 --cleartext
Todavía faltaban horas de trabajo manual para que la fuente se viera bien (agregando y eliminando puntos).
Sé que esta pregunta es antigua, pero valió la pena porque pude convertir fácilmente un .fon antiguo a .ttf usando PixFont . Lo ejecuté como administrador (sin instalaciones, un ejecutable de la vieja escuela en su lugar) y generó un buen TTF a pesar de que a la fuente original le faltaban algunos glifos correctos.
Y, aunque no es gratis, a $ 29 casi lo es, especialmente en comparación con los productos comerciales muy caros que hay.
Una posibilidad podría ser usar la herramienta de línea de comandos SBIT32 de Microsoft . Es fácil convertir el archivo .FON en un archivo FontForge usando FontForge . Pero entonces necesitas escribir un archivo de métricas (.MET). No lo intenté, porque supongo que obtendría una fuente TrueType con una fuente de mapas de bits integrada, y es posible generar dichas fuentes directamente con FontForge (escriba "(falso) MS bitmap sfnt (ttf)" debajo de Archivo -> Generar fuentes).
Usando FontForge pude generar una fuente Truetype correspondiente, que da exactamente los mismos caracteres que la fuente original cuando se usa en el buen tamaño. Puede ser que todavía necesite ajustar algunas opciones, porque usé mi fuente original en tamaño = 11. La nueva fuente solo funciona bien en tamaño = 10.5, que es imposible de usar en Delphi. La fuente se ve realmente horrible en cualquier otro tamaño.
- Cargue la fuente .FON en FontForge
- Elija Archivo-> Generar fuentes
- Seleccione "(falso) MS bitmap solo sfnt (ttf)" como tipo, entre un nombre de archivo y haga clic en "guardar".
Aparentemente usa la posibilidad de almacenar fuentes de mapa de bits en una fuente TrueType. La fuente resultante no tiene los problemas que tuve con las fuentes de mapa de bits, pero está completamente en blanco en la impresora para que no resuelva mi problema.
Una nota sobre FontForge : no logré instalar la versión para Windows de FontForge (basada en cygwin). En lugar de eso, instalé Portable Ubuntu Tres , que es una versión de Linux que funciona en Windows. Es fácil de instalar: descomprima el archivo e inicie el archivo ejecutable. Luego, elija Sistema-> Administración-> Agregar / Eliminar aplicaciones y busque FontForge e instálelo (la contraseña del administrador es 123456). Tengo instalada la versión 20090622 de FontForge.
Use FontForge + Autotrace luego haga algunas correcciones manualmente.
Primero integre Autotrace en Fontforge, vea Mapas de bits de Autotracing en FontForge . Así es como lo hice, ya que no pude usar la versión win32 de FontForge:
- Descargue, descomprima y arranque Portable Ubuntu Tres . ¡Es una versión especial de Linux que funciona bajo Windows!
- Elija Sistema-> Administración-> Agregar / Eliminar aplicaciones, busque FontForge e instálelo (la contraseña del administrador es 123456). Tengo instalada la versión 20090622 de FontForge.
- Descargue autotrace-0.31.1.tar.gz desde http://autotrace.sourceforge.net/index.html#download y cópielo en su directorio de inicio en Portable Ubuntu.
En Ubuntu portátil, elija Aplicaciones-> Accesorios-> Terminal para compilar e instalar autotrace:
sudo bash (password is 123456) gunzip autotrace-0.31.1.tar.gz tar xf autotrace-0.31.1.tar cd autotrace-0.31.1 ./configure make make install
Luego convierte tu fuente:
- Inicie FontForge en Ubuntu portátil y abra la fuente .FON.
- Guarde su fuente como una fuente .BDF (Cargar un archivo .FON como fondo no me funcionó, así que primero tuve que convertir la fuente): Archivo-> Generar fuentes y elija BDF como formato.
- Cree una nueva fuente e importe la fuente BDF como fuente de fondo: Archivo-> Importar y no olvide seleccionar "Como fondo".
Seleccione todos los caracteres e inicie un seguimiento automático mientras mantiene presionada la tecla Mayús para que pueda ingresar parámetros para el seguimiento automático. Utilicé los siguientes parámetros, que mejoraron el reconocimiento del contorno de los píxeles pero no encontré los parámetros perfectos:
-corner-surround=1 -line-threshold=10
- Corrija los caracteres manualmente utilizando principalmente la función "Agregar un punto de curva". Activar vista-> Mostrar-> Líneas casi horizontales / verticales facilita mucho el trabajo.
- Genere una fuente TrueType: Archivo-> Generar fuentes y elija Truetype como formato.