Página 1 de 1
Não deixar formulário contínuo ejetar para próxima folha
Enviado: 03 Ago 2019 12:55
por porter
Olá pessoal,
Ao imprimir em um arquivo texto, que cabe na metade de um formulário continuo, preciso que a folha ejete até a metade do formulário, gostaria de saber se alguém já teve que imprimir um orçamento dessa forma.
O formulário, é aquele que se destaca no meio, é o formulário razão, quando imprimo, está ejetando para a próxima folha, talvez a solução seja algum comando no arquivo para impedir que a folha ejete até a próxima folha.
Estou imprimindo em um arquivo texto em uma impressora matricial LX-300, pela USB,
Obrigado.
Não deixar formulário contínuo ejetar para próxima folha
Enviado: 03 Ago 2019 15:07
por Toledo
Você já tentou incluir um comando para configurar o tamanho da página de impressão?
Por exemplo, no início do relatório, incluir este comando:
No comando acima a página vai ter 33 linhas, que é metade de um formulário de 66 linhas.
Abraços,
Não deixar formulário contínuo ejetar para próxima folha
Enviado: 07 Ago 2019 08:53
por porter
Olá Toledo, obrigado por sua atenção, quando imprimo o arquivo texto por exemplo pelo bloco de notas, está saltando para próxima página.
No arquivo texto que estou gerando, tentei esse comando no começo do relatório, estou imprimindo pela matricial lx-300 pela USB.
@ prow(),pcol() SAY CHR(27)+'C'+CHR(33)
E também no final do relatório
@ prow(),pcol() SAY chr(27)+'C'+chr(1)
eject
@ prow(),pcol() SAY chr(27)+'C'+'B'
Código: Selecionar todos
SET DEVICE TO PRINT
set print to c:\vendas\teste.txt
set print on
setprc(0,0)
@ prow()+1, pcol() SAY "TESTE TESTE TESTE TESTE"
@ prow()+1, pcol() SAY "TESTE TESTE TESTE TESTE"
@ prow()+1, pcol() SAY "TESTE TESTE TESTE TESTE"
@ prow()+1,pcol() SAY chr(27)+'C'+chr(1)
eject
@ prow()+1,pcol() SAY chr(27)+'C'+'B'
Não deixar formulário contínuo ejetar para próxima folha
Enviado: 07 Ago 2019 09:21
por Toledo
Mas porque você usa o Bloco de Notas para imprimir o relatório?
Acho que por usar o Bloco de Notas, a impressora não reconhece estes comandos de configuração da impressora, por isto que o eject salta a página como se ele tivesse 66 linhas.
Se você está compilando com o Harbour, seria interessante ver:
Clique nestas tag para ver os tópicos que discute sobre estas funções:
GetPrinters PrintFileRaw GetDefaultPrinter
GetPrinters = cria uma array (matriz) com as impressoras instaladas no Windows
PrintFileRaw = imprime um arquivo TXT em qualquer impressora (que aceita impressão em modo Raw) instalada no Windows (não importa se a porta da impressora é LPT, USB, COM ou rede)
GetDefaultPrinter = retorna o nome da impressora Padrão no Windows
Abraços,
Não deixar formulário contínuo ejetar para próxima folha
Enviado: 07 Ago 2019 09:45
por Kapiaba
Como você está chamando o Bloco de notas?
Gere o Araquivo .TXT e chame assim:
Código: Selecionar todos
cFile := "CARTA.TXT"
WinExec( "Notepad.exe /a/p" + cFile )
// Para Imprimir direto na USB usando o Bloco de Notas como impressora
WinExec( "Notepad.exe /p" + cFile )
Abs.
Não deixar formulário contínuo ejetar para próxima folha
Enviado: 07 Ago 2019 11:10
por Jairo Maia
Olá porter,
Como você está imprimindo um formulário aparentemente simples, e em impressora ESC/POS (Raw), veja também se esse exemplo ajuda:
Para compilar use:
HBMK2 Exemplo.Prg hbwin.hbc xhb.hbc
Código: Selecionar todos
Function Main()
Local nLines:=33, cPrinter, cFile, nLinha := 0, nColuna := 0
/*
Se houver pasta em nome do arquivo, ela deve existir ou dá erro
*/
cFile := "C:\vendas\Teste.Txt"
Set Device To Printer // Seta saída para impressora
Set Printer To ( cFile ) // arquivo a gerar (entre parenteses)
@ ++nLinha, nColuna Say "TESTE TESTE TESTE TESTE"
@ ++nLinha, nColuna Say "TESTE TESTE TESTE TESTE"
@ ++nLinha, nColuna Say "TESTE TESTE TESTE TESTE"
/*
Posiciona o cabeçote na última linha do formulário se nescessário
*/
If nLinha < nLines
@ nLines, nColuna Say ""
EndIf
Set Printer To // fecha o arquivo gerado (nescessário)
Set Device To Screen // Seta saída para vídeo
/*
Você pode usar alguma função para escolher a impressora, mas
aqui será enviado para a impressora configurada como padrão.
Coloque a EPSON LX-300 como padrão, ou coloque o nome da impressora
exatamente como aparece na lista de impressoras do Windows
*/
cPrinter := GetDefaultPrinter() // pega a impressora padrão
/*
Imprime o arquivo em impressora compatível com o modo RAW
*/
Win_PrintFileRaw( cPrinter, cFile, "Teste de impressao" )
Return Nil