Página 1 de 1
Número de pixels de uma página
Enviado: 20 Jun 2008 14:23
por DLZ
Olá..
Como faço para definir o número de pixels ( Pos Y e Pos X) de uma página para impressão com Win32prn ?
o meu problema é com impressão de Bmp..
Eu imprimo em uma HP Laser, sai blz.. Ai imprimo em uma Olivetti Matricial, sai maior !!
o q pode ser isso ?
Re: Número de pixels de uma página
Enviado: 20 Jun 2008 19:24
por Hasse
Olá DLZ.
Ocorre que o número de pixels da página impressa com matricial é bem menor que a mesma página impressa numa jato-de-tinta ou lazer, ou seja, cabem menos pixels numa página da matricial.
Pode também ocorrer entre impressoras jato-de-tinta de modelos ou marcas diferentes quando a densidade de pixels/cm2 ou pixels/pol2 não for igual.
Você as variáveis abaixo para determinar a densidade de pixels:
Código: Selecionar todos
oPrinter:pixelsPerInchX (Number of pixels per inch in X direction (horizontal) )
oPrinter:pixelsPerInchY (Number of pixels per inch in Y direction (vertical) )
Eventualmente até podem existir outras variáveis que no momento não me ocorrem, mas certamente algum outro colega se encarregará de colocá-las neste tópico.
Com o pequeno prg anexo você pode "ver" qual a densidade da impressora, visto que desenha um quadriculado com número nas colunas e linhas.
Re: Número de pixels de uma página
Enviado: 23 Jun 2008 08:44
por DLZ
Bom dia..
Realmente, foi a conclusão que cheguei tb.., mas tem como eu saber quantos pix tem o "eixo X" e o "Eixo Y" em uma página ? tem alguma função que me retorne isso ?
Não vejo sentido em poder imprimir uma imagem se, dependendo da impressora, ela vai sair em um local diferente !!
Re: Número de pixels de uma página
Enviado: 23 Jun 2008 10:49
por DLZ
ahahmmm
Achei a solução...
as variáveis Oprint:PageHeigth e Oprint:PageWith retornam o número de pix que a página contem, na altura e largura respectivamente.. Ai foi só fazer uma proporção em percentuais para calcular as coordenadas da imagem conforme o tamanho da página..
Um abraço..
Re: Número de pixels de uma página
Enviado: 24 Jun 2008 12:52
por Hasse
Beleza !!!
O caminho é este mesmo.
Qualquer dificuldade solta o grito...
Re: Número de pixels de uma página
Enviado: 27 Jun 2008 12:52
por sygecom
DLZ escreveu:ahahmmm
Achei a solução...
as variáveis Oprint:PageHeigth e Oprint:PageWith retornam o número de pix que a página contem, na altura e largura respectivamente.. Ai foi só fazer uma proporção em percentuais para calcular as coordenadas da imagem conforme o tamanho da página..
Um abraço..
Olá Dercio,
Seria possivel vc postar como solucionou, não entendi muito bem sua solução, hoje tenho uma impressão para LPT e outra para USB.
Agradeço atentecipadamente...
Re: Número de pixels de uma página
Enviado: 27 Jun 2008 17:00
por DLZ
Ola...
Fiz mais assim... Não ficou 100 %, mas foi o melhor que consegui fazer..
Primeiro, posicionei a figura usando como base uma impressora ( Hp Laserjet)
Depois disso, pegei o número máximo de pixels do eixo x e do exio Y.
apliquei uma regra de 3 básica para descobrir quantos porcendo do eixo x e y repsenta cada coordenada do quadrado da figura..
Depois é só calcular esse percentual baseado no que retornar nas variáveis de algura e largura máxima da página..
Não sei se me fiz entender.. ehehe..
Vou tentar montar um programa exemplo e postar aqui...
Um abraço...
Re: Número de pixels de uma página
Enviado: 11 Jul 2008 13:12
por sygecom
DLZ escreveu:Ola...
Fiz mais assim... Não ficou 100 %, mas foi o melhor que consegui fazer..
Primeiro, posicionei a figura usando como base uma impressora ( Hp Laserjet)
Depois disso, pegei o número máximo de pixels do eixo x e do exio Y.
apliquei uma regra de 3 básica para descobrir quantos porcendo do eixo x e y repsenta cada coordenada do quadrado da figura..
Depois é só calcular esse percentual baseado no que retornar nas variáveis de algura e largura máxima da página..
Não sei se me fiz entender.. ehehe..
Vou tentar montar um programa exemplo e postar aqui...
Um abraço...
Dercio, se poder postar um exemplo agradeço.
Obrigado.
Re: Número de pixels de uma página
Enviado: 14 Jul 2008 15:29
por DLZ
ok..
Vamos supor que eu queira imprimir meu Bitmap nas seguintes coordenadas:
Tudo em Pixels..
Linha Inicial = 60
Coluna Inicial = 60
Linha Final = 408
Coluna final = 450
Cheguei nesse valores testando a posição utilizando como impressora o PDFCreator.
Levando em conta que com essa impressora e papel A4, sem definir margem nenhuma, a quantidade de Pixels disponíveis em uma página são:
Linhas = 7017 (OPrint:PageHeight)
Colunas = 4958 (Oprint:PageWidth)
Muito bem..
Agora é só aplicar uma regra de 3 para descobrir quanto cada coordendada representa ( em % ) em relação ao total da página..
Ex:
7017 100
60 x
x=6000/7017
X=0,85506626763574176998717400598546 %
ou seja,
A posição inicial da imagem, deverá estar posicionada em uma coordendada que represente 0,85506626763574176998717400598546 % do tamanho total da página ((OPrint:PageHeight)
é só repetir o mesmo processo para todas as outras coordenadas e depois só aplicar o percentual às variáveis OPrint:PageHeight e Oprint:PageWidth
Eis o código fonte:
Código: Selecionar todos
OPRINT:=INIC_IMP(Impressora_qualquer)
oPrint:Landscape:= .F.
oPrint:FormType := 9 //a4
oPrint:Copies := 1
ALT_PAG:=oprint:PageHeight
LARG_PAG:=oprint:PageWidth
oprint:StartPage()
PYI:=6000/7017
PXI:=6000/4958
PYF:=40800/7017
PXF:=45000/4958
YI:=ALT_PAG*(PYI/100)
XI:=LARG_PAG*(PXI/100)
YF:=ALT_PAG*(PYF/100)
XF:=LARG_PAG*(PXF/100)
IMPBMP(YI,XI,YF,XF,"Meu_Bmp.bmp")
FUNCTION IMPBMP(LI,CI,LF,CF,PBMP)
obmp:=Win32Bmp():New()
obmp:LoadFile(PBMP)
obmp:Draw(oprint,{CI,LI,CF,LF})
obmp:destroy()
Espero que entendam minha "maracutaia" ehehe
Não sou muito bom para explicar..
Um abraço !!
Re: Número de pixels de uma página
Enviado: 16 Jul 2008 17:58
por sygecom
Dercio, entendi perfeitamente, na veradade eu que tava comendo poeira aqui !! mas você me ajudou , e muitoooo vlw.
Abraços