conversão arquivo texto para rtf... e visualizar no fivewin
Enviado: 03 Set 2008 10:12
Olá pessoal,
Obtive sucesso em converter meus relatorios para rtf com esse fonte abaixo.
set printer to listas.txt
Txt2rtf( "listas.txt", 80 )
Só que gostaria melhorar isso, a fonte é única para todo o texto e o tamanho varia somente entre 80 colunas e 132 colunas...
Utilizar cores em qualquer parte do texto...
Utilizar qualquer fonte, tamanho, estilo...
Inserir imagens...
E visualizar no fivewin... pois demora processar/visualizar uma tabela de preços com 1000 paginas no WORD ou WORDVIEW.
Conto com a ajuda de vcs...
Acredito que servira para outros colegas tb.
Grato
Farley
Obtive sucesso em converter meus relatorios para rtf com esse fonte abaixo.
set printer to listas.txt
Txt2rtf( "listas.txt", 80 )
Só que gostaria melhorar isso, a fonte é única para todo o texto e o tamanho varia somente entre 80 colunas e 132 colunas...
Utilizar cores em qualquer parte do texto...
Utilizar qualquer fonte, tamanho, estilo...
Inserir imagens...
E visualizar no fivewin... pois demora processar/visualizar uma tabela de preços com 1000 paginas no WORD ou WORDVIEW.
Conto com a ajuda de vcs...
Acredito que servira para outros colegas tb.
Grato
Farley
function Txt2rtf( cArquivo, nColunas )
local cArqRtf, arq, arq_txt, cHandle
local cCaractere := space( 01 )
local cLinha := space( 01 )
local lf := chr( 13 ) + chr( 10 )
// fs define o tamanho da fonte, para o Courier New é a metade
// fs14 - fonte 7,0 - 136 colunas
// fs23 - fonte 11,5 - 80 colunas
// margl - margem esquerda
// margr - margem direita
// margt - margem superior
// margb - margem inferior
// criar um arquivo rtf com o mesmo nome
cArqRtf := lower( left( cArquivo, len( cArquivo ) - 4 ) + ".rtf" )
cArqRtf := substr(time(),1,2)+substr(time(),4,2)+substr(time(),7,2)+".rtf"
// End
// acrescentar antes do texto os parâmetros rtf
arq := fcreate( cArqRtf, 1 )
cHandle := "{\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fmodern\fprq1\fcharset0 Courier New;}{\f1\fswiss\fcharset0 Arial;}}" + lf
cHandle += "\margl284\margr505\margt505\margb505" + lf
if nColunas == 136
cHandle += "{\*\generator Msftedit 5.41.15.1503;}\viewkind4\uc1\pard\f0\fs14 "
else
cHandle += "{\*\generator Msftedit 5.41.15.1503;}\viewkind4\uc1\pard\f0\fs23 "
endif
// End
fwrite( arq, cHandle )
// Pega Linha por Linha do TXT e Transforma para RTF
arq_txt := fopen( cArquivo, 0 )
while .t.
cCaractere := space( 01 )
if fread( arq_txt, @cCaractere, 1 ) <> 1
exit
endif
if ( cCaractere ) = chr( 13 )
cLinha += "\par" + lf
fwrite( arq, cLinha )
cLinha := space( 01 )
fseek( arq_txt, 1, 1 )
loop
endif
if cLinha = space( 01 )
cLinha := cCaractere
else
cLinha += cCaractere
endif
enddo
// End
cHandle := "}"
fwrite( arq, cHandle )
fclose( arq )
fclose( arq_txt )
return( .T. )