Imprimir frente e verso

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
Tomaz Edson Linhares
Usuário Nível 1
Usuário Nível 1
Mensagens: 32
Registrado em: 19 Abr 2016 17:03
Localização: São Gonçalo/RJ

Imprimir frente e verso

Mensagem por Tomaz Edson Linhares »

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.
kakamachado
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 07 Mar 2016 18:54
Localização: Rio de Janeiro

Imprimir frente e verso

Mensagem por kakamachado »

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

para desligar o duplex: set duplex off
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Imprimir frente e verso

Mensagem por lugab »

Não entendi e fiquei curioso...

É uma impressora especial, que possui 2 conjuntos de cabeça de impressão pra fazer isso ??
lugab
kakamachado
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 07 Mar 2016 18:54
Localização: Rio de Janeiro

Imprimir frente e verso

Mensagem por kakamachado »

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

Código: Selecionar todos

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
Avatar do usuário
Tomaz Edson Linhares
Usuário Nível 1
Usuário Nível 1
Mensagens: 32
Registrado em: 19 Abr 2016 17:03
Localização: São Gonçalo/RJ

Imprimir frente e verso

Mensagem por Tomaz Edson Linhares »

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.
kakamachado
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 07 Mar 2016 18:54
Localização: Rio de Janeiro

Imprimir frente e verso

Mensagem por kakamachado »

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.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Imprimir frente e verso

Mensagem por JoséQuintas »

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

Código: Selecionar todos

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder