Ir para o conteúdo PET Sistemas de Informação Ir para o menu PET Sistemas de Informação Ir para a busca no site PET Sistemas de Informação Ir para o rodapé PET Sistemas de Informação
  • International
  • Acessibilidade
  • Sítios da UFSM
  • Área restrita

Aviso de Conectividade Saber Mais

Início do conteúdo

Gerador de certificados – Office Interop Word



Olá pessoal, tudo bem? Nesta edição do PET Redação iremos aprender a criar um gerador de certificados na linguagem C# (C Sharp) e também entender como a biblioteca Microsoft Office Interop Word funciona. Então vamos lá, Visual Studio aberto e dedos no teclado.

 
Entendo o que será feito…
 

Para criarmos então nosso gerador de certificados vamos usar a IDE Visual Studio Community e também algumas bibliotecas da linguagem C#, a principal biblioteca é a Microsoft Office Interop Word ou apenas Word Interop. Essa biblioteca permite com que por meio de linhas de códigos façamos a execução e o manuseamento das ferramentas do Office Word em documentos de texto. Nossa missão é abrir um documento já existente e editá-lo por linhas de código e após isso salvá-lo.

O documento já existente vai ser o nosso modelo de certificado e o que faremos é completar campos de texto no certificado usando o método de busca e substituição do Word.

 
 
Ferramenta de busca e substituição do próprio Word
 
 
Mãos à obra:
 

Vamos agora então para o nosso projeto…

 
 
 

Criado nosso projeto, agora vamos instalar a biblioteca office interop e modelar a interface da nossa aplicação. Para a instalação da biblioteca basta clicar com o botão direito no seu projeto e ir em “Gerenciar pacotes do NuGet” e pesquisar “Office Interop Word” instale e está tudo pronto no momento.

 
 
 
 

Abra a caixa de ferramentas para ajudá-lo na aba Exibir->Caixa de Ferramentas (atalho: Ctrl+Alt+x), nesta interface acredito que seja necessário apenas uma caixa de texto, um título e um botão para que executemos os códigos.

 
 
 
 

Com a nossa interface previamente pronta, podemos ir direto para o código clicando duas vezes no nosso botão “Gerar”. Ele vai nos encaminhar para a página de códigos da nossa interface e aqui vamos criar as funções necessárias para que nosso gerador funcione.

Na página de Códigos devemos habilitar as bibliotecas que serão necessárias, por padrão a IDE já vai colocar algumas e vamos adicionar outras extras, você pode copiar e colocar no seu código:

  • using System.Reflection;

  • using System.IO;

  • using Word = Microsoft.Office.Interop.Word;

Repare que na Microsoft.Office.Interop.Word atribuímos um “apelido” para ela “Word”, com isso podemos chamar a biblioteca usando apenas a palavra chave “Word”.

Vamos começar a implementar a função de busca e substituição ou como você quiser chamá-la:

 
 
 
 

Essa função vai receber como parâmetros a aplicação word que é basicamente o nosso documento, e a sentença que desejamos buscar e substituir. Dentro da função teremos vários objetos declarados como verdadeiros e falsos, não se assuste pois esses objetos são as configurações e você já viu elas antes…

Talvez você lembre delas desse jeito:

 
 
 
 

Em “wordApp.Selection.Find.Execute” estamos fazendo o mesmo do que quando clicamos em “Substituir ou Substituir tudo” no próprio Office. A nossa função de busca e substituição está pronta! Agora para que isso funcione precisamos criar o nosso documento Word e também salvá-lo.

A função “CreateWordDocument” vai fazer esse papel e terá como parâmetro o nosso documento modelo, o local onde queremos salvar nosso certificado e também o nome que será colocado no documento.

 
 
 
 

Nas primeiras linhas então abrimos a aplicação Word e configuramos, logo abaixo temos uma condição SE que verifica se o documento modelo que passamos nos parâmetros realmente existe, caso ele exista vamos iniciá-lo e executar a busca e substituição: “this.FindAndReplace(wordApp, “<nome>”, nome);” o wordApp é a nossa aplicação, “<nome>” é a palavra chave que buscamos na aplicação e o nome é o que colocamos no lugar de “<nome>”.

Continuando a função temos ainda:

 
 
 
 

Caso a nossa condição no SE não fosse verdadeira, ou seja, nosso documento não existir é mostrado uma mensagem de aviso para o usuário. Mas caso ocorra tudo corretamente entramos na parte de salvar o nosso novo certificado, a biblioteca possui a função SaveAs2() que faz exatamente o mesmo que o “Salvar como…” do Office quando estamos diretamente nele. E com isso salvamos já direto no local onde passamos como parâmetro dessa nossa função CreateWordDocument. Após isso fechamos o documento e encerramos a aplicação da biblioteca.

E aí? como está? Estamos quase no final do gerador, vamos recapitular o que temos. Estamos com a função de buscar e substituir pronta, nosso documento já está sendo criado e também editado com a função de busca e substituição, agora só precisamos pegar os nomes que o usuário digitar na nossa interface e chamar a função. Isso é muito fácil, vamos ver como é feito isso:

 
 
 
 

Os nomes precisam ser colocados como na foto “fulano, ciclano, beltrano” pois agora vamos implementar a maneira que queremos que esses nomes sejam lidos. Vamos então para o código na função padrão private void button1_Click(object sender, EventArgs e) .

 
 
 
 

Logo no início, criamos um vetor chamado participantes e nele colocamos os nomes que foram digitados na nossa textBox1, porém por padrão eles seriam como uma grande string apenas e para contornar isso usamos a função Split() que nos possibilita dividir uma string passando qual será a palavra chave que vai dividi-la. No nosso caso preferi colocar a vírgula para que assim em cada posição do vetor participante seja colocado um nome completo. Após isso criamos um contador e um laço de repetição para percorrermos o vetor de participantes e chamarmos a função CreateWordDocument passando o local onde está nosso documento modelo, o local onde deve ser salvo o novo documento e o nome da pessoa que vai constar no certificado.

Com isso a própria CreateWordDocument se encarrega do resto, após o código ter terminado seu processamento é enviado ainda uma mensagem confirmando o fim da execução.

 

Documento modelo:

 
 
 
 

Um dos certificados gerados:

 
 
 
 

Chegamos ao fim da nossa jornada de criação do gerador de certificados, nesta edição o gerador altera apenas o nome mas você pode customizar o seu de acordo com a sua necessidade tranquilamente, este foi apenas um ponta pé inicial. Para conferir o código e algumas modificações que eu fiz e não estão nesta redação confira este repositórioNão esqueça de conferir os links abaixo caso queira continuar seus estudos nesta área.

 
 

Samuel Rech Cassanego – 17/08/2020

Divulgue este conteúdo:
https://ufsm.br/r-791-2706

Publicações Relacionadas

Publicações Recentes