Página 2 de 4

Re: func getprinters() em harbour

Enviado: 17 Out 2010 08:23
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 !

Re: func getprinters() em harbour

Enviado: 17 Out 2010 10:07
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.

Re: func getprinters() em harbour

Enviado: 10 Jan 2011 14:07
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.

Re: func getprinters() em harbour

Enviado: 10 Jan 2011 21:11
por Itamar M. Lins Jr.
Ola!
Quais os erros?
Está usando Harbour... ?

Saudações,
Itamar M. Lins Jr.

Re: func getprinters() em harbour

Enviado: 11 Jan 2011 11:59
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

Re: func getprinters() em harbour

Enviado: 12 Jan 2011 09:36
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.

Re: func getprinters() em harbour

Enviado: 12 Jan 2011 14:48
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").

:%

Re: func getprinters() em harbour

Enviado: 12 Jan 2011 19:22
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.

func getprinters() em harbour

Enviado: 02 Jul 2012 14:18
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

func getprinters() em harbour

Enviado: 02 Jul 2012 14:36
por Toledo
Ronny, troque ANSITOOEM() por HB_ANSITOOEM().

Abraços,

func getprinters() em harbour

Enviado: 02 Jul 2012 15:32
por ronnywdson
Olha

Muito obrigado heim... acertou na mosca
Valeu pela força.

func getprinters() em harbour

Enviado: 02 Jul 2012 15:43
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

func getprinters() em harbour

Enviado: 02 Jul 2012 17:25
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,

func getprinters() em harbour

Enviado: 03 Jul 2012 00:27
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

func getprinters() em harbour

Enviado: 03 Jul 2012 00:40
por Toledo
Ronny, coloque o comando abaixo na primeira linha deste seu PRG:

Código: Selecionar todos

#include "hbwin.ch"
Abraços,