Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/04/2009, 13:52
Avatar de ACX_POISON
ACX_POISON
 
Fecha de Ingreso: abril-2008
Ubicación: Talca-Chile
Mensajes: 750
Antigüedad: 16 años, 11 meses
Puntos: 7
Pregunta ayuda + de texto a imagen

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(fontserver36)
    
    
    
    
' 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
__________________
Me junto con los que Saben, Queriendo Saber.