SOBRE PDF
Moderador: Moderadores
SOBRE PDF
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.
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.
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
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)
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)
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
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
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
xHarbour.org + Hwgui + PostgreSql
Remover senha de PDF é muito fácil. Faço isso direto.a não ser claro que o mesmo esteja protegido com senha, ai é outros quinhentos
[]'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!
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!
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!
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!
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
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.
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
sobre o gerador de pdf
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.
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.
sobre rtf
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
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
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: sobre o gerador de pdf
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.Rsantana escreveu:Quanto a criar atraves do xharbour, fica inviável uma vez que nao domino a ferramenta. .
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**********************************
********************************************************************************
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
PDF OU RTF
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.
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!
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!
Segue o link
https://pctoledo.org/forum/viewto ... 83&start=0
https://pctoledo.org/forum/viewto ... anagercorp
Jânio
https://pctoledo.org/forum/viewto ... 83&start=0
https://pctoledo.org/forum/viewto ... anagercorp
Jânio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
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!
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!
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+
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



