Página 1 de 2
SOBRE PDF
Enviado: 07 Out 2007 07:52
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.
Enviado: 07 Out 2007 11:15
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
Enviado: 07 Out 2007 13:19
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
Enviado: 07 Out 2007 13:33
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.

Enviado: 07 Out 2007 13:45
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.
Enviado: 07 Out 2007 16:18
por Maligno
Até uma ameba tira uma senha dessas. É só executar um programinha.

Enviado: 07 Out 2007 17:46
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.
sobre o gerador de pdf
Enviado: 08 Out 2007 14:19
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.
sobre rtf
Enviado: 08 Out 2007 15:03
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
Re: sobre o gerador de pdf
Enviado: 08 Out 2007 16:28
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...
PDF OU RTF
Enviado: 09 Out 2007 10:54
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.
Enviado: 09 Out 2007 11:06
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.
Enviado: 09 Out 2007 11:59
por janio
Enviado: 09 Out 2007 12:04
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.
Enviado: 09 Out 2007 15:38
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+