Preguntas frecuentes sobre TBarCode .NET
¿Por qué veo una fuente distinta en la exportación EPS y AI?
¿Por qué veo una fuente distinta en la exportación EPS y AI?
TBarCode SDK no incrusta las fuentes en EPS ni en AI. Solo hace referencia a la fuente especificando su nombre. Así que depende del dispositivo de salida o del paquete gráfico si la fuente está disponible y cómo se renderiza.
Para EPS, solo se permiten nombres de fuente que sean estándar en PostScript o nombres de fuente que no contengan espacios en blanco en el nombre de fuente referenciado.
EPS: para evitar problemas en impresoras que no tienen Arial instalada, siempre convertimos las referencias a Arial en Helvetica, que tiene un aspecto similar y es una fuente PS estándar (disponible en todas las impresoras). Si esto no es deseado, dispone de una opción que controla si se aplica o no una sustitución de fuente. Esta es la opción UseDeviceFonts.
Aquí tiene un código de ejemplo para EAN13 SC2 al 100 %:
Exportar a EPS con fuentes PostScript estándar (Arial ⇒ Helvetica)
Barcode barcode = new Barcode();
barcode.BarcodeType = BarcodeType.Ean13;
barcode.BoundingRectangleF = new RectangleF(0, 0, 37.29F, 25.91F); // SC2 size
barcode.SizeMode = SizeMode.CustomModuleWidth;
barcode.ModuleWidth = 0.330F; // SC2 module width
barcode.Data = "123456789012";
barcode.Font = new Font("Arial", 9);
barcode.UseDeviceFonts = true;
barcode.Draw("c:\\temp\\TestFile.eps", ImageType.Eps);
barcode.Draw("c:\\temp\\TestFile.ai", ImageType.Ai);
Si abre el archivo EPS exportado con un editor de texto, verá Helvetica en lugar de Arial:
/Helvetica findfont
9.0000 scalefont setfont
Así se ve si abre el archivo EPS con un visor PostScript (como GSView):
Si abre el archivo AI exportado con un editor de texto, verá:
%%IncludeResource: font ArialMT
%AI3_BeginEncoding: _ArialMT ArialMT
[/_ArialMT/ArialMT 0 0 1 TZ
Exportar a EPS y mantener la fuente ajustada (Arial ⇒ Arial)
¡La impresora o el software gráfico deben admitir "Arial"! ¡Los nombres de fuente no deben contener espacios en blanco!
Barcode barcode = new Barcode();
barcode.BarcodeType = BarcodeType.Ean13;
barcode.BoundingRectangleF = new RectangleF(0, 0, 37.29F, 25.91F);
barcode.SizeMode = SizeMode.CustomModuleWidth;
barcode.ModuleWidth = 0.330F;
barcode.Data = "123456789012";
barcode.Font = new Font("Arial", 9);
barcode.UseDeviceFonts = false;
barcode.Draw("c:\\temp\\TestFile.eps", ImageType.Eps);
barcode.Draw("c:\\temp\\TestFile.ai", ImageType.Ai);
Si abre el archivo EPS exportado con un editor de texto, verá:
/Arial findfont
9.0000 scalefont setfont
Si abre el archivo AI exportado con un editor de texto, verá:
%%IncludeResource: font Arial
%AI3_BeginEncoding: _Arial Arial
[/_Arial/Arial 0 0 1 TZ
Resumen
Para usar la fuente ajustada en la exportación, puede establecer UseDeviceFonts = false. También depende de lo que quiera hacer con el archivo EPS. Si desea enviar el archivo "tal cual" a una impresora o sistema de impresión, quizá sea mejor usar Helvetica con UseDeviceFonts = true. Recomendamos probar la impresión antes de tomar una decisión sobre DeviceFonts.
Exportación a PDF sin HRT
Para la exportación a PDF, no hay renderizado de fuentes incluido en el SDK de TBarCode; por eso no obtiene ninguna salida de fuente o texto si elige el formato de exportación PDF.
Si necesita exportación a PDF con incrustación de fuentes, puede usar nuestro TFORMer Label Printing SDK. El SDK de TFORMer admite los mismos códigos de barras que el SDK de TBarCode. O bien, también puede usar Barcode Studio en modo de línea de comandos: llama a BCStudio.exe desde su propio código de programa y pasa los datos del código de barras y el nombre de archivo a BCStudio (para los parámetros de línea de comandos disponibles, consulte el manual de usuario de BCStudio). Alternativamente, si desea usar bibliotecas PDF de terceros, puede usar el mecanismo de dibujo por retrollamada (Callback) del SDK de TBarCode: obtiene las coordenadas de las barras y del texto, y con esas coordenadas implementa el código de barras con las funciones de dibujo y renderizado de fuente/texto de la biblioteca PDF. El SDK incluye ejemplos de cómo usar el dibujo por retrollamada.