Página 1 de 1

Miniprint modo Paisagem

Enviado: 13 Out 2014 11:49
por JAIR RANGEL
Olá, a todos!

Depois de procurar em vão por um post falando sobre a minha atual dúvida, resolvi abir o bico:
Utilizando a Miniprint, quando gero relatórios em modo paisagem, na minha impressora de testes, uma Sansung Multifuncional SCX-3200, os relatórios ficam perfeitos. No entanto, quando são impressos no Cliente, algumas colunas ao final do relatório são suprimidas, ou seja, não são impressas. Isso acontece em quase todos os meus clientes.
Eu teria como resolver isto via programação ou seria puramente uma configuração na impressora do cliente?
Talvez no driver da printer, no Windows?

Desde já, um muito obrigado a todos!

MINIPRINT MODO PAISAGEM

Enviado: 13 Out 2014 12:21
por JAIR RANGEL
Um detalhe curioso é que na impressora do cliente, quando ele imprime em modo paisagem por um outro programa no windows, como o Word, por exemplo, a impressão fica perfeita em modo paisagem. O que sugere que o problema seja na Miniprint, que não consegue configurar a impressora para modo paisagem.

Alguém teria alguma ideia?

Miniprint modo Paisagem

Enviado: 14 Out 2014 11:07
por asimoes
Procura o demo2.prg na para \basic\miniprint

Neste fonte tem esse trecho que talvez possa te ajudar.

Com detalhe para a função: GetPrintableAreaWidth

Código: Selecionar todos

cPrinter := GetPrinter()
if Empty( cPrinter )
   return
endif

SELECT PRINTER cPrinter PREVIEW

nLastCol :=GetPrintableAreaWidth() - iif(IsWinNT(), 2, 10)


Miniprint modo Paisagem

Enviado: 17 Out 2014 15:54
por LUCAS MACHADO
Jair, eu uso a winprint sem problema nenhum, já testei em várias impressoras. Veja o código anexo.

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

Miniprint modo Paisagem

Enviado: 21 Out 2014 15:06
por JAIR RANGEL
Obrigado Asimões e Lucas Machado!

Grato pelo contato de vocês.
Resolvi o problema mudando os comandos de seleção de impressora. Da seguinte forma:
Antes eu selecionava a impressora assim:

SELECT PRINTER cPrinter ;
ORIENTATION PRINTER_ORIENT_PORTRAIT ;
PAPERSIZE PRINTER_PAPER_LETTER ;
QUALITY PRINTER_RES_MEDIUM ;
PAPERLENGTH nLinhas ;
PAPERWIDTH 210 ;
PREVIEW

Troquei o comando select por este:

SELECT PRINTER DIALOG TO lSelePrinter PREVIEW
If lSelePrinter == .T.
PrintDoc_256()
EndIf

Desta forma, o Operador pode selecionar o modo desejado de impressão: Retrato/Paisagem.

Um abraço,

JAIR RANGEL