FAQ TBarCode .NET
Perché vedo un font diverso nell'esportazione EPS e AI?
Perché vedo un font diverso nell'esportazione EPS e AI?
TBarCode SDK non incorpora i font in EPS e AI. Si limita a referenziare il font specificandone il nome. Quindi dipende dal dispositivo di output o dalla suite grafica se il font è disponibile e come viene renderizzato.
Per EPS sono ammessi solo nomi font standard in PostScript oppure nomi font che non contengono spazi nel nome font referenziato.
EPS: per evitare problemi su stampanti che non hanno Arial installato, convertiamo sempre i riferimenti ad Arial in Helvetica, che appare simile ed è un font PS standard (disponibile in tutte le stampanti). Se ciò non è desiderato, avete un'opzione che controlla se viene applicata o meno la sostituzione del font. Questa è l'opzione UseDeviceFonts.
Ecco un codice di esempio per EAN13 SC2 – 100%:
Esportazione in EPS con font PostScript standard (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);
Se aprite il file EPS esportato con un editor di testo, vedete Helvetica invece di Arial:
/Helvetica findfont
9.0000 scalefont setfont
Ecco come appare aprendo il file EPS con un visualizzatore PostScript (come GSView):
Se aprite il file AI esportato con un editor di testo, vedete:
%%IncludeResource: font ArialMT
%AI3_BeginEncoding: _ArialMT ArialMT
[/_ArialMT/ArialMT 0 0 1 TZ
Esportazione in EPS mantenendo il font adattato (Arial ⇒ Arial)
La stampante o il software grafico devono supportare "Arial"! I nomi font non devono contenere spazi!
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);
Se aprite il file EPS esportato con un editor di testo, vedete:
/Arial findfont
9.0000 scalefont setfont
Se aprite il file AI esportato con un editor di testo vedete:
%%IncludeResource: font Arial
%AI3_BeginEncoding: _Arial Arial
[/_Arial/Arial 0 0 1 TZ
Riepilogo
Per usare il font adattato per l'esportazione, potete impostare UseDeviceFonts = false. Dipende anche da cosa volete fare con il file EPS. Se volete inviare il file "così com'è" a una stampante o a un sistema di stampa, potrebbe essere meglio usare Helvetica con UseDeviceFonts = true. Consigliamo di provare prima la stampa prima di decidere su DeviceFonts.
Esportazione PDF senza HRT
Per l'esportazione PDF, non è incluso alcun rendering font nell'SDK TBarCode - questo è il motivo per cui non ottenete alcun output di font o testo se scegliete il formato di esportazione PDF.
Se avete bisogno dell'esportazione PDF con incorporamento dei font, potete usare il nostro TFORMer Label Printing SDK. L'SDK TFORMer supporta gli stessi codici a barre dell'SDK TBarCode. Oppure - potete anche usare Barcode Studio in modalità riga di comando – richiamate BCStudio.exe dal vostro codice programma e passate i dati del codice a barre e il nome file a BCStudio (per i parametri da riga di comando disponibili vedere il manuale utente di BCStudio). In alternativa - se volete usare librerie PDF di fornitori terzi, potete usare il meccanismo di disegno Callback dell'SDK TBarCode – qui ottenete le coordinate delle barre e del testo e con queste coordinate implementate il codice a barre con le funzioni di disegno e rendering font/testo della libreria PDF. Esempi su come usare il disegno Callback sono inclusi nell'SDK.