Clipper On Line • Ver Tópico - Imprimir frente e verso

Imprimir frente e verso

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Imprimir frente e verso

Mensagempor Tomaz Edson Linhares » 30 Mar 2017 19:58

Olá amigos, estou precisando imprimir frente e verso. Qual o comando de impressão devo usar quando um relatório exceder o número de linhas de uma página para imprimir no verso da mesma folha, ao invés de continuar numa folha nova?

Para imprimir tipo Foto ou paisagem uso assim

SELECT PRINTER mPrinter ORIENTATION PRINTER_ORIENT_LANDSCAPE
ou
SELECT PRINTER mPrinter ORIENTATION PRINTER_ORIENT_PORTRAIT

mas não sei como fazer para frente e verso.
Tomaz Edson Linhares
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 32
Data de registro: 19 Abr 2016 17:03
Cidade/Estado: São Gonçalo/RJ
Curtiu: 1 vez
Mens.Curtidas: 0 vez

Imprimir frente e verso

Mensagempor kakamachado » 01 Abr 2017 01:47

set duplex horizontal (caso use landscape) ou
set duplex vertical (caso use portrait)

para desligar o duplex: set duplex off
kakamachado
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 28
Data de registro: 07 Mar 2016 18:54
Cidade/Estado: Rio de Janeiro
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Imprimir frente e verso

Mensagempor lugab » 01 Abr 2017 07:18

Não entendi e fiquei curioso...

É uma impressora especial, que possui 2 conjuntos de cabeça de impressão pra fazer isso ??
lugab
lugab
Colaborador

Colaborador
 
Mensagens: 843
Data de registro: 19 Mai 2009 15:58
Curtiu: 126 vezes
Mens.Curtidas: 38 vezes

Imprimir frente e verso

Mensagempor kakamachado » 11 Abr 2017 15:33

Boa tarde Lugaqb.
Nada disso. Em primeiro lugar a sua impressora tem que ser uma impressora laser com capacidade para imprimir frente/verso. Nesta opção, ela imprime a frente do papel, ejeta-o, recolhe ele novamente invertendo o lado, imprime o verso e finalmente ejeta o papel para a bandeja. Para isto, o programa precisa setar a impressora na modalidade frente/verso, caso contrario ela imprimirá somente na frente do papel.
Para usar esta facilidade, seu programa deverá, apos o comando INIT PRINTSYS, colocar os comandos SELECT PRINTER mPrinter ORIENTATION PRINTER_ORIENT_LANDSCAPE ou SELECT PRINTER mPrinter ORIENTATION PRINTER_ORIENT_PORTRAIT. para os casos em que seu relatírio seja no formato landscape ou portrait,
Para desligar a opção de duplex basta colocar SET DUPLEX OFF antes do RELEASE PRINTSYS.
Veja o exemplo abaixo
Abs

INIT PRINTSYS

SET THUMBNAILS ON

IF  form_P410.combo_printer.ItemCount=0 .OR. ;
    form_P410.combo_printer.Value<=0 .OR. ;
    form_P410.combo_printer.Value>form_P410.combo_printer.ItemCount
    MSGSTOP("Não existem impressoras instaladas","Erro")
    release printsys
    RETURN nil
ENDIF

IF  lpreview
    SELECT PRINTER form_P410.combo_printer.Item(form_P410.combo_printer.Value) PREVIEW
ELSE
    SELECT PRINTER form_P410.combo_printer.Item(form_P410.combo_printer.Value)
ENDIF

RDEFFONT()           // define as fontes disponiveis

select font "F10T"   // Times 10
select pen "p0"

START DOC NAME "Emissão de contra cheques de Funcionarios"

IF  WSI_TP_CCHE = "1" .OR. WSI_TP_CCHE = "3" .OR. WSI_TP_CCHE = "6"
    set duplex vertical
ENDIF

Set Page orientation DMORIENT_LANDSCAPE papersize DMPAPER_A4

DO  P410_EMITE_CONTRA_CHEQUE

END DOC

set page orientation DMORIENT_PORTRAIT papersize DMPAPER_A4 font "F12T"
set duplex off

RELEASE PRINTSYS
kakamachado
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 28
Data de registro: 07 Mar 2016 18:54
Cidade/Estado: Rio de Janeiro
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Imprimir frente e verso

Mensagempor Tomaz Edson Linhares » 11 Abr 2017 16:46

Mas amigo, Kakamachado, minha impressora não tem esse recurso. A frente e verso tem que ser manual. Eu só preciso que ela dê uma pausa quando imprimir a frente e solicite que a folha seja virada.
Tomaz Edson Linhares
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 32
Data de registro: 19 Abr 2016 17:03
Cidade/Estado: São Gonçalo/RJ
Curtiu: 1 vez
Mens.Curtidas: 0 vez

Imprimir frente e verso

Mensagempor kakamachado » 12 Abr 2017 13:48

Neste caso, se você verificar que vai ser necessário imprimir no verso pois estourou o número de linhas, dê o END PAGE e dê uma mensagem (MSGSTOP) solicitando recolocar o papel e após recolocado dê o ENTER para continuar. Acho que funciona.
kakamachado
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 28
Data de registro: 07 Mar 2016 18:54
Cidade/Estado: Rio de Janeiro
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Imprimir frente e verso

Mensagempor JoséQuintas » 12 Abr 2017 14:18

Como é sua rotina? Tem cabeçalho na impressão?

Supondo que tenha a rotina de cabeçalho, só incluir uma mensagem.
Acaba até ficando estranha a dúvida.... rs

DO WHILE ! Eof()
   IF nLin > 66
      MsgExclamation(  "Posicione o papel e tecle OK pra imprimir próxima página" )
      Cabecalho()
   ENDIF
   ..
   SKIP
ENDDO
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 6 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro