Número de pixels de uma página
Moderador: Moderadores
-
DLZ
- Usuário Nível 3

- Mensagens: 184
- Registrado em: 09 Jun 2008 10:09
- Localização: Ibirubá - RS - Brasil
Número de pixels de uma página
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 ?
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 ?
-
Hasse
- Usuário Nível 4

- Mensagens: 820
- Registrado em: 19 Out 2004 10:30
- Localização: Jaraguá do Sul - SC
Re: Número de pixels de uma página
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:
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.
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) )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.
- Anexos
-
TesteQ.prg- (3.31 KiB) Baixado 118 vezes
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
-
DLZ
- Usuário Nível 3

- Mensagens: 184
- Registrado em: 09 Jun 2008 10:09
- Localização: Ibirubá - RS - Brasil
Re: Número de pixels de uma página
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 !!
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 !!
-
DLZ
- Usuário Nível 3

- Mensagens: 184
- Registrado em: 09 Jun 2008 10:09
- Localização: Ibirubá - RS - Brasil
Re: Número de pixels de uma página
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..
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..
-
Hasse
- Usuário Nível 4

- Mensagens: 820
- Registrado em: 19 Out 2004 10:30
- Localização: Jaraguá do Sul - SC
Re: Número de pixels de uma página
Beleza !!!
O caminho é este mesmo.
Qualquer dificuldade solta o grito...
O caminho é este mesmo.
Qualquer dificuldade solta o grito...
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Número de pixels de uma página
Olá Dercio,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..
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...
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
-
DLZ
- Usuário Nível 3

- Mensagens: 184
- Registrado em: 09 Jun 2008 10:09
- Localização: Ibirubá - RS - Brasil
Re: Número de pixels de uma página
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...
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...
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Número de pixels de uma página
Dercio, se poder postar um exemplo agradeço.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...
Obrigado.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
-
DLZ
- Usuário Nível 3

- Mensagens: 184
- Registrado em: 09 Jun 2008 10:09
- Localização: Ibirubá - RS - Brasil
Re: Número de pixels de uma página
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:
Espero que entendam minha "maracutaia" ehehe
Não sou muito bom para explicar..
Um abraço !!
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()Não sou muito bom para explicar..
Um abraço !!
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Número de pixels de uma página
Dercio, entendi perfeitamente, na veradade eu que tava comendo poeira aqui !! mas você me ajudou , e muitoooo vlw.
Abraços
Abraços
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql