func getprinters() em harbour

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

renato miranda
Usuário Nível 1
Usuário Nível 1
Mensagens: 2
Registrado em: 16 Out 2010 13:24
Localização: sao paulo / sp

Re: func getprinters() em harbour

Mensagem por renato miranda »

amigos, bom dia

ate criei um topico para isso, mas como to lendo TUDO e vi que vcs falam sobre impressao, olha a minha situacao: uso hbprinter e ao mandar imprimir no windows vista ou 7, TRAVA meu aplicativo - enm qualquer micro, e´ bom explicar !

aparece aquela tela esbranquiçada e o aplicativo deixa de funcionar !

to fazendo alguma besteira ? parece que o programa tenta criar um arquivo (o documeto a imprimir) e nao consegue e ai´ da´ pau !

alguem passou por isso ?

grato !
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: func getprinters() em harbour

Mensagem por Itamar M. Lins Jr. »

Ola!
Já tentou aplicar privilégio de admin ao arquivo ?
Outra coisa importante é perguntar no forum oficial da Minigui também, caso não tenha feito...

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
braz
Usuário Nível 2
Usuário Nível 2
Mensagens: 53
Registrado em: 08 Jan 2011 17:39
Localização: piracicaba

Re: func getprinters() em harbour

Mensagem por braz »

Itamar

Eu tentei compilar meu sistema com a funcao que vc postou mas deu varios erros, voce poderia postar as outras funcoes tambem que vc nao postou, obrigado.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: func getprinters() em harbour

Mensagem por Itamar M. Lins Jr. »

Ola!
Quais os erros?
Está usando Harbour... ?

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
braz
Usuário Nível 2
Usuário Nível 2
Mensagens: 53
Registrado em: 08 Jan 2011 17:39
Localização: piracicaba

Re: func getprinters() em harbour

Mensagem por braz »

Itamar M. Lins Jr. escreveu:Ola!
Quais os erros?
Está usando Harbour... ?

Saudações,
Itamar M. Lins Jr.
Eu to usando Xharbour fio, ou estou na seção errada? :((

Os erros são provenientes das funcoes que tem sua rotina e vc não colocou a disposição.
grato

Abrçs
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: func getprinters() em harbour

Mensagem por Itamar M. Lins Jr. »

Se você poder colocar um pequeno pedaço do seu sistema onde ocorre o erro ou dúvida fica melhor para nós respondermos.
Os erros são provenientes das funcoes que tem sua rotina e vc não colocou a disposição.
grato
Novamente se você não informar como irei saber ?
Quais são as funções que não coloquei a disposição ?

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
braz
Usuário Nível 2
Usuário Nível 2
Mensagens: 53
Registrado em: 08 Jan 2011 17:39
Localização: piracicaba

Re: func getprinters() em harbour

Mensagem por braz »

Itamar M. Lins Jr. escreveu:Tem várias formas.
Mas vou colocar uma que uso:

Código: Selecionar todos

*********************************
Function PrintWinPrn(cArq,cPrint)
*********************************
*
*
Local oPrn, aPrn:=GetPrinters(), n := 0
if empty(aPrn)
MsgInfo('Não há impressoras instaladas')
return .f.
endif
If cPrint == Nil
cPrint := GetDefaultPrinter()
EndIf

oPrn := win_prn():New(cPrint)
oPrn :LandScape := .f.
oPrn :FormType := FORM_A4
oPrn :Copies := 1
oPrn:CharSet(255)
oPrn:setfont('Courier New',,12,,,,255)

if !oPrn:Create()
MsgInfo("Não foi criado documento")
return nil
EndIf
if !oPrn:startDoc("Imprimindo Documento")
MsgInfo("Erro na Impressora")
return nil
EndIf

HB_CDPSelect("PT850")
setprc(5,0)
cText := memoread(cArq) 
nLinh := mlcount(cText)
For n := 1 to nLinh
oPrn:TextOut(ansitooem(memoline(cText,,n)),.t.)
Next
oPrn:EndDoc()

HB_CDPSelect( "PTISO") 

Return .t.
Dessa forma podemos trabalhar com Gregos e Troianos, se bem que na Grecia o bixo tá pegando...

Saudações,
Itamar M. Lins Jr.
.

Esta rotina serve pra xharb ?

Se sim, voce precisa disponibilizar as funcoes para compilar (HB_CDPSelect("PT850"),HB_CDPSelect( "PTISO") , oPrn:startDoc("Imprimindo Documento").

:%
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: func getprinters() em harbour

Mensagem por Itamar M. Lins Jr. »

São funções do Harbour.
Para o xHarbour elas possuem outro nome, por exemplo.

Código: Selecionar todos

 HB_SETCODEPAGE() -> HB_CDPSELECT()
 WIN32PRN() -> WIN_PRN()


Sugiro verificar a possibilidade de atualizar para o Harbour.
Caso queira ficar usando o xHarbour verifique aqui no forum as mesmas funções, com outros nomes, pois não lembro de todas.
Procure no forum a classe WIN32PRN que é nome que tem a classe WIN_PRN no Harbour.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
ronnywdson
Usuário Nível 1
Usuário Nível 1
Mensagens: 23
Registrado em: 30 Jun 2012 12:37
Localização: Rondonópolis/MT
Contato:

func getprinters() em harbour

Mensagem por ronnywdson »

Boa tarde

Desculpe-me por ressuscitar um post antigo, mas estou passando pelo mesmo problema relatado aqui.
Linkei as lib´s xHB.lib e a hbWin.lib, mas o erro abaixo é apresentado. Nele a função ANSITOOEM não é encontrada.
Unresolved external '_HB_FUN_ANSITOOEM' referenced from C:\TESTE\OBJ\TESTE.OBJ
Como proceder?
Obrigado pela atenção

Ronny Wdson
___________
Ronny Wdson
Java, PHP e Clipper desde 1993
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

func getprinters() em harbour

Mensagem por Toledo »

Ronny, troque ANSITOOEM() por HB_ANSITOOEM().

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
ronnywdson
Usuário Nível 1
Usuário Nível 1
Mensagens: 23
Registrado em: 30 Jun 2012 12:37
Localização: Rondonópolis/MT
Contato:

func getprinters() em harbour

Mensagem por ronnywdson »

Olha

Muito obrigado heim... acertou na mosca
Valeu pela força.
___________
Ronny Wdson
Java, PHP e Clipper desde 1993
ronnywdson
Usuário Nível 1
Usuário Nível 1
Mensagens: 23
Registrado em: 30 Jun 2012 12:37
Localização: Rondonópolis/MT
Contato:

func getprinters() em harbour

Mensagem por ronnywdson »

Começo esse POST pedindo desculpas por não ter perguntado isso na mensagem anterior.
Quando eu uso #define FORM_A4 9 e #define FORM_LT 1 eu estou defindo meu papel como sendo A4, é isso?
Se for, no meu caso eu preciso que o relatório seja impresso usando um formulário pronto da empresa (formulário contínuo e usando somente a metade da folha, pois ele já vem em duas vias e picotado no meio).
Como configurar para que no final do relatório ele pare na posição certa para o início da próxima impressão, tem jeito?
Obrigado novamente pela atenção
Att
Ronny Wdson
___________
Ronny Wdson
Java, PHP e Clipper desde 1993
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

func getprinters() em harbour

Mensagem por Toledo »

ronnywdson escreveu:Quando eu uso #define FORM_A4 9 e #define FORM_LT 1 eu estou defindo meu papel como sendo A4, é isso?
Mais ou menos... o tamanho do papel é definido no comando oPrn :FormType. Nos comandos acima você está apenas criando as variáveis com o valor do formulário A4 (FORM_A4) e do formulário continuo completo (FORM_LT).
ronnywdson escreveu:(formulário contínuo e usando somente a metade da folha, pois ele já vem em duas vias e picotado no meio)
O tamanho padrão do formulário contínuo é 11 polegadas, então neste caso no lugar de usar FORM_A4 você deveria trocar por:

Código: Selecionar todos

oPrn :FormType  := WIN_DMPAPER_USER
oPrn :PaperLength := 5.5*25.4*10
oPrn :PaperWidth := 8.5*25.4*10
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
ronnywdson
Usuário Nível 1
Usuário Nível 1
Mensagens: 23
Registrado em: 30 Jun 2012 12:37
Localização: Rondonópolis/MT
Contato:

func getprinters() em harbour

Mensagem por ronnywdson »

Boa noite

Segui suas recomendações e coloquei o trecho postado no meu código.
Mas apresenta a mensagem: Error BASE/1003 Vari vel nÆo existe: WIN_DMPAPER_USER
O que falta para funcionar?

Obrigado mais uma vez
Ronny Wdson
___________
Ronny Wdson
Java, PHP e Clipper desde 1993
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

func getprinters() em harbour

Mensagem por Toledo »

Ronny, coloque o comando abaixo na primeira linha deste seu PRG:

Código: Selecionar todos

#include "hbwin.ch"
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Responder