ruben Dario wrote:Ya tambien logre que se genere en xHarbour
se debe colocar la libreria libharu.lib que esta en xHarbour\lib en Harbour es esta libhpdf.lib
y el el fuente hacer esta modificacion
METHOD GetImageFromFile( cImageFile )
IF HHasKey( ::hImageList, cImageFile ) //con harbour es HB_HHasKey como esta el fuente original
RETURN ::hImageList[ cImageFile ]
ENDIF
Estupendo! Estoy pensando que se podría añadir al código un #ifdef __XHARBOUR__ e incluir un #translate HB_HHasKey( <u> ) => HHasKey( <u> ),
con eso es innecesario modificar el codigo fuente cuando cambias de compilador. Gracias por la investigación.
Quedaria así:
- Code: Select all Expand view RUN
#ifdef __XHARBOUR__
#translate HB_HHasKey( <u> ) => HHasKey( <u> )
#endif
Y vuelve a usar la función HB_HHasKey(). Si estas usando XHarbour la cambiará a HHasKey() y no hay que tener dos versiones.
ruben Dario wrote:Te pregunto este archivo i2of5txt.ttf se usa para el manejo solamente de codigo de barras.
nunca he manejado codigo de barras
segun tu codigo
HaruAddFont( 'Arial Black', 'ariblk.ttf' )
HaruAddFont( 'i2of5txt', 'i2of5txt.ttf', .T. )
i2of5txt.ttf si esta en el codigo que publicaste , pero ariblk.ttf no esta , de donde lo toma el sistema como lo consigo o lo toma directamente del C:\Windows\Fonts.
si2of5txt es un font True Type para imprimir codigos de barras. En el ejemplo se incluye porque es parte del mismo, como poner codigos de barra en un pdf.
Respecto de ariblk.ttf, si miras dentro de HaruFonts.prg, verás que la librería trata de gestionar las fuentes, para lo cual necesita acceso directo a los .ttf. No hay una correspondencia exacta entre los nombres del font y el nombre del archivo ttf, por eso hay una pequeña lista de inicialización de los más usados (Arial, Calibri, Verdana, etc) y el nombre que tienen. Si quieres usar otro Font, debes indicar el nombre del archivo ttf. Si está instalado en Windows, no hay problema, la librería lo busca en el directorio actual, el directorio de fuentes de Windows, y algún otro directorio que tule indiques con las funciones que están en ese prg.
Escribí un pequeño manual, que incluso se puede leer en linea si entras en la pagina de BitBucket, y todo esto está explicado. Y tambien está el manual en formato docx.
ruben Dario wrote:Con respecto al codigo de barras nunca he manejado esto necesitaria documentarme.
pero generas el codigo de barras con esta instruccion.
:CmSay( nOffset + 13.5, 8.9, i2of5Encode( i2Of5('30666666666009000466110123456789'+DtoS(Date()) ) ), oFont2of5 )
dicha barra que genera la puede leer cualquier lector, en este caso que informacion mostraria el lector, o mostaria esta informacion '30666666666009000466110123456789'+DtoS(Date()
perdona la pregunta pero en realidad desconosco este majeno.
Si, es correcto. la cadena '306666...' es lo que lee el lector de codigo de barras.
Súbete alguna prueba que hayas hecho a ver que tal vas.
Un saludo