Clipper On Line • Ver Tópico - gerar arquivos em word usando harbour

gerar arquivos em word usando harbour

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

gerar arquivos em word usando harbour

Mensagempor Amparo » 05 Nov 2019 09:09

Ola amigos

bom dia a todos

em meu computador também não existe o arquivo winpar.ch

tente fazer o seguinte( um exemplo bem simples possível)

crie um arquivo rtf padrao por exemplo padrao.rtf neste arquivo todo conteudo que vc queira mudar voce coloca +- assim CLINOME, CLINFE, CLIEMISSAOe por ai vai.

no seu prg crie uma estrutura de tabela desta forma:


ARQRTF :=  "C:\TESTE\PADRAO.RTF"
TESTE := "C:\TESTE\TABELA.DBF"
CAMPOS := {{"DADOS","C",500,00}}
c_Contrato := ""

DBCREATE( TESTE, CAMPOS )

USE ( TESTE ) ALIASs TESTE NEW EXCLUSIVE

SELECT("TESTE")
APPEND FROM (ARQRTF) SDF

TESTE->( DBGOTOP() )

DO WHILE !TESTE->( EOF() )
  *aqui vc vai mudando suas variáveis de acordo com sua necessidade,

    IF "CLINOME" $ ARQDBF->DADOS
      CSTR := STRTRAN( ARQDBF->DADOS, "CLINOME", c_NomCli )
   ELSEIF "CLINFE" $ ARQDBF->DADOS
      CSTR := STRTRAN( ARQDBF->DADOS, "CLINFE", c_NumNfe )
   ELSEIF "CLIEMISSAO" $ ARQDBF->DADOS
      CSTR := STRTRAN( ARQDBF->DADOS, "CLIEMISSAO", c_DatEmi )
   ...
     ELSE
      CSTR := ARQDBF->DADOS
   ENDIF

   c_Contrato += ALLTRIM( CSTR ) + CRLF

    TESTE->( DBSKIP() )
ENDDO

MEMOWRIT( "c:\test\novortf.rtf", c_Contrato )

*depois é so mandar abrir e imprimir no word

IMPRIME_WORD( "c:\test\novortf.rtf")

*---------------------------------------------------------------------------------
procedure IMPRIME_WORD( CARQ )
Local oWord

oWord:=TOleAuto():New( "Word.Application" )
oWord:Documents:Open( CARQ )
oWord:WindowState := 1
oWord:Visible := .t.
oWord:PrintOut()   //PARA IMPRIMIR DIRETO

Return nil



não precisa declarar este winpar.ch

abraços
Avatar de usuário

Amparo
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 279
Data de registro: 20 Ago 2010 10:38
Cidade/Estado: caieiras / sao paulo
Curtiu: 0 vez
Mens.Curtidas: 1 vez

gerar arquivos em word usando harbour

Mensagempor cjp » 09 Nov 2019 02:06

Funcionou. Muito obrigado.

Duas dúvidas: 1) o que é CRLF? Seria pra colocar parágrafo? Aqui não funcionou, tive que retirar; 2) no final do texto ficou um "quadradinho"; é normal isso?
Inacio de Carvalho Neto
cjp
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1138
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 6 vezes
Mens.Curtidas: 10 vezes

gerar arquivos em word usando harbour

Mensagempor clodoaldomonteiro » 10 Nov 2019 09:10

CRLF seria a quebra de linha.
Coloque isso no início do seu fonte principal ou no fonte .CH:
#define CRLF  chr(13)+chr(10)
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Avatar de usuário

clodoaldomonteiro
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 626
Data de registro: 30 Dez 2006 12:17
Cidade/Estado: Teresina-PI
Curtiu: 23 vezes
Mens.Curtidas: 11 vezes

gerar arquivos em word usando harbour

Mensagempor cjp » 11 Nov 2019 08:53

Entendido, obrigado.
Inacio de Carvalho Neto
cjp
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1138
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 6 vezes
Mens.Curtidas: 10 vezes

gerar arquivos em word usando harbour

Mensagempor sasquast » 19 Nov 2019 15:37

Hasse,

Não tenho nem palavras para agradecer a enorme ajuda.

Muito obrigado a você e aos demais camaradas.
sasquast
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 18
Data de registro: 31 Jul 2019 16:47
Cidade/Estado: Volta Redonda / RJ
Curtiu: 26 vezes
Mens.Curtidas: 0 vez

gerar arquivos em word usando harbour

Mensagempor Itamar M. Lins Jr. » 19 Nov 2019 17:30

Ola!
No harbour 3.4 usamos.
 hb_eol() 

Pq ? simples no Windows é CRLF = Carriage Return + Line feed->chr(13)+chr(10). No Linux é apenas Line Feed. ->chr(10).A função hb_eol(), detecta o OS é aplica corretamente o código. Isso dá uma certa confusão nos textos e documentos por exemplo.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 4626
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 161 vezes
Mens.Curtidas: 254 vezes

gerar arquivos em word usando harbour

Mensagempor cjp » 27 Mar 2020 20:49

Pessoal, me surgiu uma nova necessidade aqui, vejam se vocês podem me ajudar, por favor.

A partir de um arquivo em pdf, usando harbour, é possível gerar um arquivo Word? Basicamente, quero apenas criar uma cópia do arquivo pdf para um arquivo word, usando harbour. É possível?
Inacio de Carvalho Neto
cjp
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1138
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 6 vezes
Mens.Curtidas: 10 vezes

gerar arquivos em word usando harbour

Mensagempor fladimir » 29 Mar 2020 00:52

Em harbour nativo não sei, talvez com algum programa externo sendo chamado consiga.

Caso não consiga me chame em PVT q talvez consiga te ajudar.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2431
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 148 vezes

gerar arquivos em word usando harbour

Mensagempor cjp » 21 Abr 2020 17:26

Pessoal, gostaria de saber se é possível criar o arquivo word com uma imagem, que é como um cabeçalho em todos os arquivos que vou criar. Não é uma imagem muito grande.
Tenho essa imagem em um arquivo do Word já salva. Só preciso colocar essa imagem em todos os arquivos que vou gerar a partir do meu sistema em Harbour.
É possível?
Inacio de Carvalho Neto
cjp
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1138
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 6 vezes
Mens.Curtidas: 10 vezes

gerar arquivos em word usando harbour

Mensagempor oxent_jabah » 18 Set 2020 10:36

Bom Dia, Amigos!

Fiz umas alterações no fonte postado anteriormente e vejam o resultado, usando o MS-WORD direto!
Anexos
TstHb2Word.zip
(637.53 KiB) Baixado 8 vezes
Avatar de usuário

oxent_jabah
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 30
Data de registro: 26 Dez 2008 10:29
Cidade/Estado: Juazeiro do Norte-Ce-Brasil
Curtiu: 0 vez
Mens.Curtidas: 1 vez

gerar arquivos em word usando harbour

Mensagempor malcarli » 18 Set 2020 14:36

bom exemplo amigo. apanhei bastante do word para poder gerar documentos.

Agregando mais conhecimento ao seu exemplo pode-se usar ao invés de:

__text := win_OEMToANSI( "PD 9999999.DOC" )
oWord:Selection:TypeText( __text )

substituir por:
oWord:Selection:TypeText(hb_AnsiToOem( "PD 9999999.DOC"))

na minha opinião acho que fica mais claro o entendimento.

mais alguns comandos que uso:
oWord:Selection:EndKey(6) // encerra página atual
oWord:Selection:InsertBreak(1) // inicia nova página

e uso sem as constantes colocando direto o valor dos comandos, igual a função abaixo
Procedure fTitulo_Alinha(nAlinha, oWord, cTitulo)
   oWord:Selection:Font:Bold:= .T.                    // negrito
   oWord:Selection:Paragraphs:Alignment:= nAlinha     // 0 = alinhado a esquerda e 1 alinhado ao centro
   oWord:Selection:Font:Size:= 12                     // tamanho
   oWord:Selection:TypeText(hb_AnsiToOem(cTitulo) + hb_OsNewLine() + hb_OsNewLine())
   oWord:Selection:Font:Bold:= .F.                    // desabilita negrito
   oWord:Selection:Font:Size:= 11                     // tamanho
   oWord:Selection:Paragraphs:Alignment:= 3           // alinhamento justificado
Return (Nil)


Para inserir imagem no cabeçalho faço assim:
      *** Cabeçalho 
      oWord:ActiveDocument:ActiveWindow:Activepane:View:SeekView = 9
      oWord:Selection:Font:Name                                  = "Times New Roman" // fonte
      oWord:Selection:Font:Size                                  = 14                // tamanho
      oWord:Selection:Font:Bold                                  = .T.               // negrito
      oWord:Selection:Paragraphs:Alignment                       = 1                 // alinhado ao centro 

      oTable := oTexto:Tables:Add(oTexto:Range, 1, 2)                                // Cria uma célula com 2 colunas
      oTable:Columns:Item(1):Width = 50                                              // Largura da primeira célula
      oTable:Columns:Item(2):Width = If(nOrientacao == 0, 450, 700)                  // Largura da segunda célula
      oTable:Cell(1,1):Range:ParagraphFormat:Alignment = 1                           // alinhado ao centro
      If Hb_FileExists(DISKNAME() + ':' + PATHIMAGENS + [LOGO.BMP])
         oTable:Cell(1,1):Range:InlineShapes:AddPicture(DISKNAME() + ':' + PATHIMAGENS + [LOGO.BMP])     // Insere a imagem na primeira célula
      Endif
      oTable:Cell(1,2):Range:ParagraphFormat:Alignment = 1                           // alinhado ao centro
      oTable:Cell(1,2):Range:Text = AllTrim(hb_AnsiToOem(cEmpresa)) + hb_OsNewLine() + ; // 1º texto
                                    AllTrim(hb_AnsiToOem(cEndereco_p))                   // 2º texto
malcarli
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 65
Data de registro: 20 Ago 2015 18:14
Cidade/Estado: marilia/sp
Curtiu: 30 vezes
Mens.Curtidas: 0 vez

Anterior



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Semrush [Bot] e 7 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro