gracias X leerlo
me encuentro intentando hacer un tipo de funcion que genere codigo de barra, me explico,. pasando le un parametro como texto la idea es que toma ese texto lo codifica y lo muestra como imagen con una fuente especifica. se supone es el codigo de barras EAN-128
utilizo la fuente code128.ttf
ej
entra-> C08997537r94030211
muestra -> ÌÊCÇ(ÇkEÈrÇ~#"+9Î (muestra este texto con la fuente)
todo bien solo tengo un problema el cual consiste en que el espaciado entre los caracteres, por algun motivo es mayor al normal.
me explico en el WORD (programa) escribo la cadena codificada y le aplico el tipo de fuente.... y al imprimeirla anda super bien
por otro lado la imagen generada con el codigo al imprimirla y compararla con la de WORD es un poco mas larga y los espacios entre caracteres son mayores (utilizo el mismo tamaño de letra) , por lo tanto no me la toman los lectores de codigo.....
¿Alguna sugerencia para solucionar el problema que tiene este NOVATO?
barras.aspx
Código PHP:
<%@ Page Language="VB" Debug="True" %>
<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="System.Drawing.Imaging" %>
<%@ Import Namespace="System.Drawing.Text" %>
<%
'********************************************************
'++ Creacion de codigo de barra Ean128 ++
'++ De texto -> codificacion-> img ++
'++ By Acx_poison@gmail.com ++
'++ last update 23/04/2009 ++
'++ 3121481982b7757a0dfbd5258555ff7e ++
'********************************************************
' declaro Variables
Dim objBMP As System.Drawing.Bitmap
Dim objGraphics As System.Drawing.Graphics
Dim font_c As System.Drawing.Font
Dim font_A As System.Drawing.Font
Dim codigo_ingreso As String
Dim inicial As String
Dim largo As Integer
Dim codigo_humano As String
' cargando fuente de server
Dim pfc As PrivateFontCollection = New PrivateFontCollection
pfc.AddFontFile(Server.MapPath("code128.ttf"))
' fuente del server
Dim fontserver As FontFamily = pfc.Families(0)
Dim fontserverX As New Font(fontserver, 36)
' creacion de nueva image - bitmap
objBMP = New Bitmap(275, 100)
' Create a graphics object to work with from the BMP
objGraphics = System.Drawing.Graphics.FromImage(objBMP)
' Fill the image with background color
objGraphics.Clear(Color.White)
'establesco SingleBitPerPixelGridFit es la mejor manera en la que pude ver
objGraphics.TextRenderingHint = TextRenderingHint.SingleBitPerPixelGridFit
objGraphics.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
objGraphics.CompositingQuality = Drawing2D.CompositingQuality.HighQuality
objGraphics.PixelOffsetMode = Drawing2D.PixelOffsetMode.HighQuality
' Configuro font para barras y humano
font_c = New Font("Code 128", 36, FontStyle.Regular)
font_A = New Font("Arial", 12, FontStyle.Regular)
codigo_ingreso = Replace(Request.QueryString("codigo"), "'", "")
codigo_ingreso= Replace(codigo_ingreso, "-", "r")
codigo_humano = codigo_ingreso
inicial = "Ê"
codigo_ingreso = inicial & codigo_ingreso
largo = Len(codigo_ingreso)
'ingreso a funcion
codigo_ingreso = EAN128(codigo_ingreso)
codigo_ingreso = codigo_ingreso & Chr(32) & Chr(1)
'escribo texto
objGraphics.DrawString(codigo_ingreso, fontserverX, Brushes.Black, 1, 1)
objGraphics.DrawString(codigo_humano, font_A, Brushes.Black, 25, 70)
' retorno cabeceras tipo imagen
Response.ContentType = "image/GIF"
objBMP.Save(Response.OutputStream, ImageFormat.Gif)
' Kill los objetos y demases
font_c.Dispose()
font_A.Dispose()
fontserverX.Dispose
objGraphics.Dispose()
objBMP.Dispose()
%>
default.htm
Código PHP:
<html>
<head>
<title>ASP 101s Generating Text Images on the Fly with ASP.NET Sample Code</title>
</head>
<body>
<p>
generando imagenes con aspx
</p>
<br />
<img src="barras.aspx?codigo=C08997537-94030211" alt="Barras"/>
</body>
</html>