imprimir variaveis com win32prn()

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

Moderador: Moderadores

lapinhazzz
Usuário Nível 3
Usuário Nível 3
Mensagens: 130
Registrado em: 20 Abr 2009 10:52
Localização: LAGOA

imprimir variaveis com win32prn()

Mensagem por lapinhazzz »

Bom Dia amigos do forum

Gostaria de saber como imprimir variaveis de uma base de dados para win32prn()

Gostaria que me enviassem um exemplo que escolhe as impressoras de rede e locais e imprimisse um pequeno relatorio como se fazia no clipper com variaveis
Obrigado

Com os melhores cumprimentos a todos

lapinhazzz

Código: Selecionar todos

*--------------------------------------------------------------------------------------
#define FORM_A4 9
#define RGB( nR,nG,nB ) ( nR + ( nG * 256 ) + ( nB * 256 * 256 ) )
#define PS_SOLID 0
#define BLACK RGB( 0x0 ,0x0 ,0x0 )
#define BLUE RGB( 0x0 ,0x0 ,0x85 )
#define GREEN RGB( 0x0 ,0x85,0x0 )
#define CYAN RGB( 0x0 ,0x85,0x85 )
#define RED RGB( 0x85,0x0 ,0x0 )
#define MAGENTA RGB( 0x85,0x0 ,0x85 )
#define BROWN RGB( 0x85,0x85,0x0 )
#define WHITE RGB( 0xC6,0xC6,0xC6 )
*
*--------------------------------------------------------------------------------------
FUNCTION Main()
   LOCAL nPrn:=1
   LOCAL aPrn:= GetPrinters()
   CLS
   sele 3
   use produtos
   inde on codigoprod to cprod
   c=prod
   IF EMPTY(aPrn)
      Alert("No printers installed - Cannot continue")
      QUIT
   ENDIF
   DO WHILE !EMPTY(nPrn)
      CLS
      @ 0,0 SAY 'Programa de teste Classe WIN32PRN(). Escolha uma impressora. ESC' +;
         ' para sair.'
      @ 1,0 TO maxRow(),maxCol()
      nPrn:= ACHOICE(2,1,maxRow()-1,maxCol()-1,aPrn,.T.,,nPrn)
      IF !EMPTY(nPrn)
         PrnTest(aPrn[nPrn])
      ENDIF
   ENDDO
   *
   @ 22,00 say ""
RETURN(NIL)
*
*--------------------------------------------------------------------------------------
STATIC FUNCTION PrnTest(cPrinter)
   LOCAL oPrinter:= WIN32PRN():New(cPrinter), aFonts, x, nColFixed, nColTTF, ;
      nColCharSet, aForms
   oPrinter:Landscape:= .F.
   oPrinter:FormType := FORM_A4
   oPrinter:Copies := 1
   *
   c_string := "Teste-" + LTRIM(STR(YEAR(DATE()))) + "-" + STRZERO(MONTH(DATE()),2) +;
      "-" + LTRIM(STR(DAY(DATE()))) + "=" + TIME()
   *
   IF !oPrinter:Create()
      Alert("Cannot Create Printer")
   ELSE
      IF !oPrinter:startDoc( c_string )
         Alert("StartDoc() failed")
      ELSE
         nFont := 12
         oPrinter:SetFont('Courier New',12,{1,nFont}, 0, .F., .F.)

         FOR N = 1 TO 2
            oPrinter:NewLine()
         NEXT N
         *
         *-----------------------------------------------------------------------------

         *================================== Busca de informa‡äes =====================

         oPrinter:TextOut("Impressora: " + oPrinter:PrinterName + ' ' +;
            'MaxRow() = '+ltrim(STR(oPrinter:MaxRow(),4)) +;
            ' MaxCol() = '+ltrim(STR(oPrinter:MaxCol(),4)) , .t.)

         oPrinter:NewLine()
         oPrinter:SetFont('Courier New',12,{1,nFont}, 0, .F., .F.)

         oPrinter:Textout(STR(oprinter:LineHeight() ) + " -altura da linha",.t.)
         oPrinter:Textout(STR(oprinter:CharWidth() ) + " -largura da coluna",.T.)
         oPrinter:TextOut(STR(oPrinter:Prow() ) + " -N£mero da linha",.T.)
         oPrinter:TextOut(STR(oPrinter:GetCharWidth() ) + " -GetCharWidth",.T.)
         oPrinter:TextOut(STR(oPrinter:GetCharHeight() ) + " -GetCharHeigth",.T.)
         oPrinter:Textout(STR(oprinter:Prow() ) + " -Posi‡Æo atual da " +;
            "linha",.T.)
/*
Onde:
oPrinter:TextOut("Texto a ser impresso",.T.)
1-Texto;
2-Opcional: Avan‡a linha automaticamente (.T.) ou nÆo (.F.),
sendo (.F.) o seu valor Default, quando suprimido.
*/
         *======================= Aqui come‡a a impressÆo da 1¦ p gina ================

         oPrinter:NewLine()
         FOR nLinha = 1 TO 3
            oPrinter:SetPrc(oPrinter:Prow()+01, nLinha )
            oPrinter:Textout(ALLTRIM(STR(oPrinter:Prow()))+ c +;
               "ola",.f.)
         NEXT nLinha

         oPrinter:TextAtFont(oPrinter:mm_to_posx(105),oPrinter:mm_to_posy(75), +;
            "Imprimindo em negrito centralizado na horizontal","Courier New", +;
            8,,700,,.T.,,,,,2)


            /*
Onde:
1-Imprime a 105mm da margem esquerda;
2-Na linha 2;
3-Texto;
4-Fonte Courier New;
5-Tamanho da fonte, 10;
6-Divisor do tamanho da fonte;
7-O valor 700 indice Bold (negrito) ou (.F.);
8-Controla o sublinhado (.T.) ou (.F.);
9-Controla o it lico (.T.) ou (.F.);
10-nCharSet;
11-Nova linha (.T.) ou nÆo (.F.)
12-Atualiza PosX (.T.) ou nÆo (.F.)
13-Controla a cor de impressÆo;
14-O valor "2" indica impressÆo centralizada, "0" o texto seria
impresso … esquerda da posi‡Æo 105mm, e "1" o texto estaria …
direita do ponto 105 mm.
*/
         *======================= Aqui come‡a a impressÆo da 2¦ p gina ================

         oPrinter:NewPage()
         oPrinter:NewLine()
      endi
   endif

Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: imprimir variaveis com win32prn()

Mensagem por gvc »

Gostaria de saber como imprimir variaveis de uma base de dados para win32prn()
Vc já tem isso no seu poste:

oPrinter:Textout(<variável>,.t.)
oPrinter:Textout(<campo>,.t.)
Gostaria que me enviassem um exemplo que escolhe as impressoras de rede e locais e imprimisse um pequeno relatorio como se fazia no clipper com variaveis
Por favor, explique melhor o que vc quer fazer.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
lapinhazzz
Usuário Nível 3
Usuário Nível 3
Mensagens: 130
Registrado em: 20 Abr 2009 10:52
Localização: LAGOA

Re: imprimir variaveis com win32prn()

Mensagem por lapinhazzz »

Bom dia amigo
O Problema é que quanto ponho as variáveis na impressão com o pdfcreator 0.7.1 o que acontece é que não aparece as variaveis que eu puz no textout.

Como resolvo isto

Obrigado

Cumprimentos

Lapinhazzz
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: imprimir variaveis com win32prn()

Mensagem por Hasse »

Boa tarde.

Dê uma olhada no tópico abaixo:

https://pctoledo.org/forum/viewto ... tes#p54198

Alí tem tudo que você está necessitando e muito mais. Lembrando que a funçao :TextOut() da Classe Win32prn só imprime texto, portanto os valores numéricos precisam ser transformados antes em string.

Se houver dúvidas, exponha.
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)
lapinhazzz
Usuário Nível 3
Usuário Nível 3
Mensagens: 130
Registrado em: 20 Abr 2009 10:52
Localização: LAGOA

Re: imprimir variaveis com win32prn()

Mensagem por lapinhazzz »

Boa Noite
Amigos do Forum

Dei uma olhadela no link e tenho o pdfcreator 0.7.1 para imprimir.
Para o pdfcreator não pedir para gravar em PDF mas abrir logo o pdf (preview) como faço?

Obrigado.

Cumprimentos,


lapinhazzz
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: imprimir variaveis com win32prn()

Mensagem por Hasse »

Basta configurar o PDFCreator que ele envia direto para o AcrobatReader.

Não me lembro mais como faz isto no 0.7.1 pois agora uso o 0.9.6 . Este último é mais rápido, mas para caracteres especiais o 0.7.1 é mais fiel.

Mas, pelo que me lembro, durante a instalação a configuração padrão é para abrir direot no Acrobat. Porém para verificar, vá em Iniciar / Programas / PDFCreator. Ali aparecem as opções.

Se não der certo, desinstale, e re-inicie o computador. Instale novamente.

OBS: O AcrobatReader está instalado ?
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)
Avatar do usuário
PAULO S
Usuário Nível 3
Usuário Nível 3
Mensagens: 176
Registrado em: 24 Abr 2006 09:18
Localização: Santo Anastácio - SP

Re: imprimir variaveis com win32prn()

Mensagem por PAULO S »

Caro Lapinhazzz,

Abra o PDFCreator e no Monitor de Impressão, configure a opção de salvamento automático.
Configure as opções como formato do arquivo, nome, pasta para salvamento e principalmente, neste caso, marque a opção que determina a abertura autonática do documento após o salvamento.
Pronto está resolvido. Utilizo desta forma e funciona OK.

Abraços.
Paulo
Clipper 5.2d/NTX -> xHarbour/CDX
lapinhazzz
Usuário Nível 3
Usuário Nível 3
Mensagens: 130
Registrado em: 20 Abr 2009 10:52
Localização: LAGOA

Re: imprimir variaveis com win32prn()

Mensagem por lapinhazzz »

Boa Tarde Amigos do Forum

Amigo Paulo S.

Abri o pdfcreator 0.7.1 e ele bloqueia-me.
Não sei porquê

Se tem algum truque me diga porque só com esse pdfcreator é que consigo imprimir bmps com o win32prn()

Obrigado


lapinhazzz
Avatar do usuário
PAULO S
Usuário Nível 3
Usuário Nível 3
Mensagens: 176
Registrado em: 24 Abr 2006 09:18
Localização: Santo Anastácio - SP

Re: imprimir variaveis com win32prn()

Mensagem por PAULO S »

Caro Lapinhazzz,

Desculpe, mas como o Hasse, uso outra versão do PDFCreator, a 0.9.5.
Abraços.
Paulo
Clipper 5.2d/NTX -> xHarbour/CDX
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: imprimir variaveis com win32prn()

Mensagem por Hasse »

Explique o que é este "bloqueia".
Ele não permite alterações na configuração ?
Você instalou ele disponível para todos ?
Você está no Administrador ?

Ajude-nos com detalhes e poderemos te ajudar mais facilmente.
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)
Responder