Página 1 de 1
preview em pdf
Enviado: 27 Mai 2009 05:38
por lapinhazzz
Caros amigos estive a dar uma olhadela para o que um programador chamado Hass postou neste forum sobre impressao win32prn para iniciantes.
Compilei e deu tudo certo.
Mas agora pergunto como faço o preview em pdf se mandar para pdf da impressão.
Escolho a impressora e depois como faço para que o programa me faça um preview em pdf antes de imprimir.
Grato pela atenção
Carlos Lapa
Re: preview em pdf
Enviado: 27 Mai 2009 08:49
por DLZ
Ola amigo..
Eu uso o PDF Creator.. Gostei muuuito.. Ele instala uma impressora no windows, ai é só mandar a impressão para essa impressora que vai abrir um documento do Acrobat automaticamente.. é claro que para abrir automaticamente é preciso fazer algumas configurações no PdfCreator depois de instala-lo..
Esperto ter ajudado..
Um abraço..
Re: preview em pdf
Enviado: 27 Mai 2009 19:18
por Hasse
Boa noite colegas.
Realmente é como o colega DLZ informou.
A Classe Win32prn(), ou envia o documento para a impressora e neste caso não é possível "ver" o documento, ou então ele envia o documento para a impressora virtual PDFCreator que captura os dados, os transforma em documento PDF, grava em arquivo PDF e abre o dito no Acrobat. Do Acrobat você pode imprimir ou não.
O PDFCreator na versão 0.9.6 nem precisei configurar para gravar o arquivo e abri-lo na sequência no Acrobat. É automático e muito rápido.
Já o CutePDF Writer não abre automaticamente o arquivo que ele grava. Também não achei onde configurar isto.
O CutePDF é mais fiel na gravação de caracteres especiais. Igual acontence com o PDGCreator na versão 0.7. Já o PDFCreator na versão 0.9.6 deixa a desejar neste aspecto em alguns casos.
Re: preview em pdf
Enviado: 12 Jun 2009 11:41
por locio
Vocês poderiam dar um exemplo de como, internamente, eu escrevo o comando para o preview do relatorio que eu estou criando.
Obrigado
Re: preview em pdf
Enviado: 12 Jun 2009 13:27
por DLZ
Cara.. Não muda naaada no se programa.. O PdfCreator instala uma impressora no windows, depois disso, basta selecionar essa impressora no Win32prn que, o que sairia na impressora, será impresso em um documento PDF !! Mamão com açucar ! ehehe
Re: preview em pdf
Enviado: 12 Jun 2009 22:24
por Hasse
Boa noite locio.
Em míúdos, você instala o PDFCreator, que cria uma "impressora virtual" chamada PDFCreator.
No meu PRG, tenho uma opção de "ver" na variável c_prt. Neste caso, o executável direciona a saída do Win32prn() para o PDFCreator que grava o arquivo configurado em c_Arq, e em seguida abre o citado no Acrobat.
A variável c_Arq, no meu caso, assume nomes que nunca é o mesmo, e desta forma não há perigo de haver tentativa de sobre-escrita de um arquivo já existente. Veja o exemplo abaixo:
Código: Selecionar todos
.
.
.
IF c_prt = "Ver"
c_Arq := "Laudo-"+ALLTRIM(PACIENTE->P_NOME)+"-"+c_ano+"-"+c_mes+"-"+c_dia+"="+TIME()
STAR_DOC("PDFCreator", c_Arq )
&& Cria o arquivo configurado em c_Arq e abre o dito no Acrobat.
ELSE
STAR_DOC( )
&& Envia para a impressora padrão.
ENDIF
.
.
.
RERTURN(.T.)
FUNCTION START_DOC(cPrinter,cDoc)
&& Função da Classe Win32prn()
.
.
.
.
RETURN(.T.)
Por outro lado, você pode enviar o arquivo para a impressora padrão, mas também há a possibilidade de escolher, em tempo de execução, a impressora que você deseja utilizar para imprimir os dados. Para isso, basta você incluir a função descrita, logo no início da rotina (Function Main()) que está no link abaixo:
viewtopic.php?f=4&t=6465&st=0&sk=t&sd=a&hilit=win32prn+para+iniciantes
Ela apresenta uma lista de impressoras instaladas na tela, via ACHOICE. Basta escolher, e pronto, imprimindo... Muito fácil.
Re: preview em pdf
Enviado: 15 Jun 2009 14:58
por sygecom
Bom, fiz algumas alterações em alguns fontes da Hwgui para pegar o PREVIEW e jogar direto em BMP, mas isso apenas para Hwgui. Mas acredito que pode ser usado tmb. com WIN32PRN, só que teria que adptar para WIN32PRN. Se alguem se interresar eu posto aqui.
Re: preview em pdf
Enviado: 15 Jun 2009 16:43
por locio
Hasse,
Será que vc pode tambem postar a codificação da função START_DOC()
Obrigado,
Lócio
Re: preview em pdf
Enviado: 15 Jun 2009 16:59
por sygecom
Se você notar o link que o Hasse postou você pode pegar tudo ali da continuação do exemplo dele. Ou ainda baseado no mesmo exemplo pode pegar o exemplo do link abaixo:
viewtopic.php?f=43&t=9472
Re: preview em pdf
Enviado: 15 Jun 2009 18:26
por Hasse
Boa noite
O meu START_DOC() está elaborado como abaixo, mas ele pode ser diferente, de acordo com as necessidades de cada qual:
Código: Selecionar todos
FUNCTION START_DOC(cPrinter,cDoc)
PUBLIC oPrinter:= WIN32PRN():New(cPrinter), aFonts, x, nColFixed, nColTTF, nColCharSet, aForms
oPrinter:SetPrintQuality(-1) && qualidade da impressão.
oPrinter:Landscape:= .F.
oPrinter:FormType := FORM_A4
oPrinter:Copies := 1
IF !oPrinter:Create()
Alert("NÆo foi poss¡vel criar o Documento de ImpressÆo")
ELSE
IF !oPrinter:startDoc(cDoc)
Alert("In¡cio StartDoc() falhou")
ELSE
*
oPrinter:SetFont('Courier New')
oPrinter:CharSet(255) && Charset para imprimir barra colorida.
*
IF ! PRT_PACIENTE() && Rotina de impressão dos laudos.
RETURN(NIL)
ENDIF
*
oPrinter:EndDoc()
*
ENDIF
*
oPrinter:Destroy()
*
ENDIF
*
RETURN
*
* oPrinter:SetPrintQuality(-2) // qualidade da impressao
*
* ATENÇÂO: Essa linha (SetPrintQuality) DEVE ser posta antes de startdoc() ou não
* funcionará. As opções são DRAFT (-1), LOW (-2), MEDIUM (-3), HIGH (-4) sendo essa
* última a DEFAULT, por isso, se você tentar imprimir e sair muito lento use essa linha
* e defina como DRAFT. Experimente e veja qual a melhor para você.
Boa sorte.
Re: preview em pdf
Enviado: 18 Jun 2009 10:56
por locio
Consegui implementar. Ficou otimo. Obrigado a todos e especialmente ao Hasse.
Lócio