Clipper On Line • Ver Tópico - Miniprint modo Paisagem

Miniprint modo Paisagem

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Miniprint modo Paisagem

Mensagempor JAIR RANGEL » 13 Out 2014 11:49

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!
MINIGUI + HARBOUR + BRMAKE + CDX
CLIPPER 5.2E + VISUALLIB 2 + BLINKER
Avatar de usuário

JAIR RANGEL
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 177
Data de registro: 19 Jul 2005 16:01
Cidade/Estado: RIO DE JANEIRO
Curtiu: 1 vez
Mens.Curtidas: 2 vezes

MINIPRINT MODO PAISAGEM

Mensagempor JAIR RANGEL » 13 Out 2014 12:21

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?
MINIGUI + HARBOUR + BRMAKE + CDX
CLIPPER 5.2E + VISUALLIB 2 + BLINKER
Avatar de usuário

JAIR RANGEL
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 177
Data de registro: 19 Jul 2005 16:01
Cidade/Estado: RIO DE JANEIRO
Curtiu: 1 vez
Mens.Curtidas: 2 vezes

Miniprint modo Paisagem

Mensagempor asimoes » 14 Out 2014 11:07

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

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

SELECT PRINTER cPrinter PREVIEW

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

â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Miniprint modo Paisagem

Mensagempor LUCAS MACHADO » 17 Out 2014 15:54

Jair, eu uso a winprint sem problema nenhum, já testei em várias impressoras. Veja o código anexo.
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
LUCAS MACHADO
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 25
Data de registro: 31 Mai 2013 11:43
Cidade/Estado: RIO DE JANEIRO/RJ
Curtiu: 0 vez
Mens.Curtidas: 2 vezes

Miniprint modo Paisagem

Mensagempor JAIR RANGEL » 21 Out 2014 14:06

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
MINIGUI + HARBOUR + BRMAKE + CDX
CLIPPER 5.2E + VISUALLIB 2 + BLINKER
Avatar de usuário

JAIR RANGEL
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 177
Data de registro: 19 Jul 2005 16:01
Cidade/Estado: RIO DE JANEIRO
Curtiu: 1 vez
Mens.Curtidas: 2 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