SOBRE PDF

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Rsantana
Usuário Nível 1
Usuário Nível 1
Mensagens: 12
Registrado em: 04 Mar 2005 19:51

SOBRE PDF

Mensagem por Rsantana »

Olá Amigos

Tenho um sistema de Folha de Pagamento em Clipper e recentemente um cliente exigiu que alguns relatorios sejam gerados tambem em formato PDF, sob pena de cancelar o contrato. Gostaria de alguma ajuda. Ja gerei um arquivo texto em um dos relatorios (contra-cheque), depois o abro no windows e envio para impressao, tendo com impressora padrao a impressora PDF. Dessa forma, é gerado automaticamente um arquivo PDF, porem, quando abro o respectivo arquivo no ACROBAT, percebo que o resultado nao é esteticamente muito bom, embora tenha usado uns caracteres extendidos para formatar as bordas , etc. Nao será que existe outra solucão mais prática? Pior que ja passou muito tempo, tenho pressa. Por favor me ajudem, Deus esteja convosco.
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Prezado Colega

Neste caso acho que você deveria primeiro gerar o arquivo no formato RTF (word) e depois transformá-lo em PDF conforme da mesma maneira que está fazendo com o TXT, creio que dessa forma a formatação ficará perfeita. Busque aqui no fórum sobre como criar arquivo RTF no clipper, tem alguns tópicos ensinando a fazer isso.

Ps. Porque tem que ser em PDF ? Não pode ser em RTF ou DOC ?
Se o cliente quiser por segurança então diga a ele que não faz diferença, pois existem dezenas de programas disponiveis na internet que permitem alterar um arquivo PDF.

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Rsantana, primeiro minha dica a vc é fazer seu proprio gerador de relatorio em PDF no xharbour usando a PDFLIB no link abaixo segue um exemplo do Rochinha.
https://pctoledo.org/forum/viewtopic.php?t=4659

Segundo, o que o Marcelo disse acima é verdade existe varios programinhas para editar PDF a não ser claro que o mesmo esteja protegido com senha, ai é outros quinhentos.

Boa Sorte

Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

a não ser claro que o mesmo esteja protegido com senha, ai é outros quinhentos
Remover senha de PDF é muito fácil. Faço isso direto. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Maligno escreveu:
a não ser claro que o mesmo esteja protegido com senha, ai é outros quinhentos
Remover senha de PDF é muito fácil. Faço isso direto. :)
Para usurio comum isso não é tão facil assim.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Até uma ameba tira uma senha dessas. É só executar um programinha. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinho

Ante de quebrar a cabeça fazendo um programa/função/aplicativo para gera PDF instale e use antes um driver com este intuito.

Procure no google pdf4free download e instale-o.

Ele funciona como uma impressora e tudo que voce enviar a ele será transformado num arquivo PDF.

Depois use seu tempo para criar seu aplicativo ponte.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Rsantana
Usuário Nível 1
Usuário Nível 1
Mensagens: 12
Registrado em: 04 Mar 2005 19:51

sobre o gerador de pdf

Mensagem por Rsantana »

Primeiramente, quero agradecer à todos pela colaboração e dizer que de todas as sugestoes, a que vou seguir é a que me orienta a criar um arquivo em RTF, embora nao saiba bem a respeito, sinto esse é o melhor caminho.
Quanto a criar atraves do xharbour, fica inviável uma vez que nao domino a ferramenta.
A outra opção de baixar um gerador de pdf que simula uma impressora, tambem ja fiz anteriormente e nao tive o resultado esperado. Ele realmente gera, mas nao sai exatamente como gostaria, fica muito limitado em termos de estética, caixa, borda etc. Isso talvez até por limitação minha.
De qualquer forma reitero, de coração, meu agradecimento a todos.
Rsantana
Usuário Nível 1
Usuário Nível 1
Mensagens: 12
Registrado em: 04 Mar 2005 19:51

sobre rtf

Mensagem por Rsantana »

Prezado Colega.

Agradeço pela ajuda. Nao consegui achar no forum o link que ensina a gera o RTF.
Aproveitando, gostaria de acrescentar que o objetivo maior é permitir a impressão de contra-cheques em formulário em branco, onde sairiam duas vias por folha. O objetivo de gerar o arquivo é justamente poder envia-lo para uma filial que fica em outro Estado, onde seria feita a impressão.

O proprio cliente desenhou o modelo de contra-cheque.
Pergunta: Com o formato RTF será que consigo imprimir do jeito desejado, com caracteres fechando borda, etc......

E se puder gostaria do link que ensina a gerar o arquivo rtf

Agradeço
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: sobre o gerador de pdf

Mensagem por sygecom »

Rsantana escreveu:Quanto a criar atraves do xharbour, fica inviável uma vez que nao domino a ferramenta. .
Não seja por isso, post no forum do xharbour as duvidas....alias de uma olhada que simples criar um PDF apartir de um TXT usando a PDFLIB.

Código: Selecionar todos

*******************
FUNC GERA_PDF(cARQ) // vem como parametro o TXT
*******************
Private AMSG, CIMG
PRIVATE oDlgHabla:=NIL
AMSG := {}
set(105,1)
set(106,1)

MsgRun("Aguarde Gerando Documento PDF...")

GERAFILE()

cFILE3 := cFILE+".PDF"

vARQ:={}
aadd( vARQ, {"LINHA","C",200,0} )
DBcreate(cFILE, vARQ,"DBFCDX")

SELE 40
USE (cFILE) new shar VIA "DBFCDX"//  ALIAS tela shared NEW
append from (cARQ) sdf && nome completo do arquivo sdf

PdfNew(cFile3,8,842,595,1,1,,,)
PdfStartPage( {""} , .T. )
CIMG := "logo.png"
PDFPLACEIMAGE(CIMG, 1,1,57.73,0.8166,1240,1754)  // função pra incluir imagem

dbgotop()
cCONT=0
Do while !eof()
   cLinha := Linha           // Busca linha de impressao
   cCONT=cCONT+1
   Aadd(AMSG,cLinha)

   IF cCONT=60
      PdfDrawPage( AMSG )
      PdfEndPage()
      PdfStartPage( {""} , .T. )
      cCONT=0
   ENDIF
   dbskip()
enddo

PdfDrawPage( AMSG )
PdfEndPage()
PdfEnd()
IF oDlgHabla#NIL
  oDlgHabla:CLOSE()
ENDIF
Abre_aqrquivo( cFile3 )
return nil

********************************************************************************
***************INCIO DA FUNCAO DE ABRIR ARQUIVOS********************************
********************************************************************************
// Open help file with associated viewer application
FUNCTION Abre_aqrquivo( cHelpFile )
   LOCAL nRet, cPath, cFileName, cFileExt

   HB_FNameSplit( cHelpFile, @cPath, @cFileName, @cFileExt )

   nRet := _OpenHelpFile( cPath, cHelpFile )
RETURN nRet

#pragma BEGINDUMP
   #pragma comment( lib, "shell32.lib" )
   #include "hbapi.h"
   #include <windows.h>
   HB_FUNC( _OPENHELPFILE )
   {
     HINSTANCE hInst;
     LPCTSTR lpPath = (LPTSTR) hb_parc( 1 );
     LPCTSTR lpHelpFile = (LPTSTR) hb_parc( 2 );
     hInst = ShellExecute( 0, "open", lpHelpFile, 0, lpPath, SW_SHOW );
     hb_retnl( (LONG) hInst );
     return;
   }
#pragma ENDDUMP
********************************************************************************
***************FIM DA FUNCAO DE ABRIR ARQUIVOS**********************************
********************************************************************************

Obs: esse é apenas um exemplo simples, pode melhor ele como tamanho de fontes, criar BOX e etc...
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Rsantana
Usuário Nível 1
Usuário Nível 1
Mensagens: 12
Registrado em: 04 Mar 2005 19:51

PDF OU RTF

Mensagem por Rsantana »

Postei anteriormente um pedido de ajuda sobre como gerar um arquivo PDF em clipper. Um dos amigos do Forum me orientou/sugeriu a criar o relatorio em RTF, so que nao consegui achar no nenhuma ajuda relacionada a criacao de arquivo no formato RTF. Por favor, quem souber qual o link que me direcione a esse topico, agradeço imensamente.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Se bem me lembro, quem estava mexendo com isso e criou alguma coisa a respeito foi o colega managercorp. Faça uma busca no fórum pelo termo RTF e o nome dele.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Mensagem por janio »

fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

O link para download, presente na mensagem do seu segundo link, está quebrado. Se alguém tiver o fonte e puder disponibilizar na seção de códigos fontes, ficará mais fácil.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

Mensagem por ANDRIL »

Acho q não é dificil. Veja, crie no Wordpad ou Word um documento e desenhe nele o tal contra cheque preenchendo todos os campos: data de vencimento, emissao e etc.

Apos isto, salve o documento com o tipo RTF, exemplo: meurtf.rtf

Abra o arquivo meurtf.rtf no edit do DOS.

localize o texto que corresponde ao campos que vc devera preencher, por exemplo, data de vencimento ( o valor preenchido exemplo: 09/10/2007 ) e substitua 09/10/2007 por <datavencimento>

Salve o arquivo. Pronto seu arquivo de referencia ja esta com as marcações necessarias.

Agora no seu programa abra o arquivo meurtf.rtf atrave das funcoes:

//--o arq meurtf.rtf passa ser a referencia
string=memoread("meurtf.rtf")

//--string contem o conteudo do arquivo lido por memoread
//--a funcao strtran localiza <datavencimento> e subtitui pela data corrente
string=strtran(string,"<datavencimento>",dtoc(date())

//--salva o conteudo da var string em um outro arquivo rtf ja modificado
memowrit("novorft.rtf",string)

Resumindo, vc pode fazer o que for necessario no WORD, salva o documento, coloca a marcacao que deseja q seu programa substitua e pronto.

Isso é só uma ideia, ja tive que fazer documento RTF e a maneira mais facil que encontrei foi esta.


Ate+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Responder