Página 1 de 1

Imprimir frente e verso

Enviado: 30 Mar 2017 19:58
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.

Imprimir frente e verso

Enviado: 01 Abr 2017 01:47
por kakamachado
set duplex horizontal (caso use landscape) ou
set duplex vertical (caso use portrait)

para desligar o duplex: set duplex off

Imprimir frente e verso

Enviado: 01 Abr 2017 07:18
por lugab
Não entendi e fiquei curioso...

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

Imprimir frente e verso

Enviado: 11 Abr 2017 15:33
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

Imprimir frente e verso

Enviado: 11 Abr 2017 16:46
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.

Imprimir frente e verso

Enviado: 12 Abr 2017 13:48
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.

Imprimir frente e verso

Enviado: 12 Abr 2017 14:18
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