Neste artigo vou mostrar como podemos proteger arquivos do Microsoft Word com senha e também como incluir uma marca d'água usando a biblioteca Spire.Doc for .Net. |
A biblioteca Spire.Doc for .NET para a plataforma .NET foi projetada especialmente para criar, ler, gravar, converter e imprimir arquivos de documentos do Microsoft Word a partir da plataforma .NET usando as linguagens C# ou VB .NET de forma rápida, simples e com alta qualidade.
Como um componente independente do Word, a Spire.Doc for .NET não precisa que o Microsoft Word esteja instalado na sua máquina, embora ele possa incorporar recursos de criação de documentos Word em aplicativo .NET.
Ela suporta tanto C# como VB .NET e ASP .NET MVC e oferece suporte a Word 97-2003, 2007/2010/2013 tendo a capacidade de converter os arquivos em formatos de arquivos como XML, RTF, XPS, EPUB, EMF, HTML, etc. Além disso a biblioteca suporta a conversão de documentos Word Doc/Docx para PDF usando C# com alta qualidade.
O site oficial pode ser visitado neste link : http://www.e-iceblue.com/Introduce/word-for-net-introduce.html#.Vvwh80e2q9i
A versão gratuita do Free Spire.Doc for .NET pode ser obtida neste link: http://www.e-iceblue.com/Introduce/free-doc-component.html#.VvwhnUe2q9g
A
biblioteca free Spire.Doc for .NET é uma biblioteca de classes para Word
totalmente independente que não requer que o Microsoft Office esteja instalado
no sistema. A Automação Microsoft Office provou ser instável, lenta e não
escalável para produzir documentos do MS Word.
A biblioteca free Spire.Doc for .NET é muitas vezes mais rápida que a automação
do Microsoft Word, além de mais estável e escalável, permitindo que os
desenvolvedores processem documentos do Word já existentes com suporte a procura
e substituição, alinhamento, quebra de página, campo de preenchimento, cópia de
documento, impressão.
A versão gratuita esta limitada a 100 parágrafos e 5 tabelas. Esta limitação é imposta durante a leitura ou gravação de arquivos. Nesta versão, ao converter documentos do word para PDF e XPS arquivos, você pode obter apenas as 3 primeiras página do arquivo PDF.
Mesmo assim, vale a pena conferir alguns dos recursos dessa biblioteca, e no artigo de hoje vamos proteger documentos Word e incluir uma marca d'água para indicar que o documento é confidencial.
Recursos usados:
Nota: Baixe e use a versão Community 2015 do VS ela é grátis e é equivalente a versão Professional.
Criando a solução no VS Community
Abra o VS Community 2015 e clique em New Project;
Selecione a linguagem Visual Basic e o template Windows Forms Application;
Informe o nome Protegendo_DocumentosWord e clique no botão OK;
No formulário padrão form1.vb inclua os seguintes controles a partir da ToolBox:
Disponha os controle conforme o leiaute da figura abaixo:
incluindo uma referência á biblioteca Spire.Doc for .Net via Nuget:
No menu Tools clique em Nuget Package Manager e a seguir em Manage Nuget Packages for Solution;
Clique em Browse e informe o nome Spire.doc localizando esta biblioteca no repositório;
Marque o projeto e clique no botão Install:
Para instalar a biblioteca usando o Package Manager Console digite o comando no console:
Vemos acima a instalação da versão 5.6.62 em nosso projeto.
Definindo o código do projeto
No início do formulário declare as variáveis objeto que iremos usar no projeto:
Imports
Spire.DocAgora vamos usar os recursos da bilbioteca Spire.Doc for .NET em nosso projeto:
No evento Click do botão btnLocalizar vamos incluir o código abaixo:
Private Sub btnLocalizar_Click(sender As Object, e As EventArgs) Handles btnLocalizar.Click Dim ofd1 As New OpenFileDialog() Dim Arquivo As String = Nothing ofd1.Title = "Abrir como" ofd1.FileName = "Nome Arquivo" ofd1.Filter = "Arquivos Excel (*.docx)|*.docx" ofd1.InitialDirectory = "C:\Dados\Word\" Dim dr As DialogResult = ofd1.ShowDialog() Arquivo = ofd1.FileName If Arquivo Is Nothing Then MessageBox.Show("Arquivo Invalido", "", MessageBoxButtons.OK) Else txtArquivoWord.Text = ofd1.FileName End If End Sub |
No evento Click do botão de comando Proteger Documento Word inclua o código abaixo:
Private Sub btnProtegerDocumento_Click(sender As Object, e As EventArgs) Handles btnProtegerDocumento.Click Try Dim document As New Document(txtArquivoWord.Text) 'incluindo uma marca d'água no documento Dim txtWatermark As New TextWatermark() 'atribuindo o texto da marca d'água e a fonte e o leiaute txtWatermark.Text = txtTextoMarcaDagua.Text txtWatermark.FontSize = 90 txtWatermark.Layout = WatermarkLayout.Diagonal document.Watermark = txtWatermark 'protegendo o documento com senha document.Encrypt(txtSenha.Text) 'salvando o documento document.SaveToFile(txtSalvarArquivoWord.Text, FileFormat.Docx) MessageBox.Show("Arquivo Word Protegido com sucesso.") Catch ex As Exception MessageBox.Show("Erro " + ex.Message) End Try End Sub |
Para concluir no evento Click do botão - Abrir Documento Word - inclua o código a seguir:
Private Sub btnAbrirArquivoWord_Click(sender As Object, e As EventArgs) Handles btnAbrirArquivoWord.Click Try Dim startInfo As New ProcessStartInfo() startInfo.FileName = "WINWORD.EXE" startInfo.Arguments = txtSalvarArquivoWord.Text Process.Start(startInfo) Catch ex As Exception MessageBox.Show("Erro " + ex.Message) End Try End Sub |
Agora execute o projeto, selecione um arquivo Word, defina o texto e a senha e clique no botão para proteger o documento.
Após esse processo ao abrir o documento teremos a solicitação da senha e após aberto veremos a marca d'água conforme mostrado abaixo:
Além de definir uma senha para um documento Word podemos também proteger o documento.
A proteção funciona de forma diferente da atribuição de senha. Na proteção o usuário pode acessar o documento mas tem sua permissão de acesso restrita a realizar apenas algumas tarefas.
A biblioteca Spire.Doc for .NET oferece o método Document.Protect(ProtectionType type, String password) na classe Document. Existem cinco tipos de proteção oferecidas:
Vamos ajustar a nossa interface incluindo dois controles CheckBox no formulário:
Para proteger o documento Word permitindo incluindo a opção de ter o acesso somente leitura podemos usar o código abaixo:
- document.Protect(ProtectionType.AllowOnlyReading, txtSenha.Text)
Private Sub btnProtegerDocumento_Click(sender As Object, e As EventArgs) Handles btnProtegerDocumento.Click Try Dim document As New Document(txtArquivoWord.Text) 'incluindo uma marca d'água no documento Dim txtWatermark As New TextWatermark() 'atribuindo o texto da marca d'água e a fonte e o leiaute txtWatermark.Text = txtTextoMarcaDagua.Text txtWatermark.FontSize = 90 txtWatermark.Layout = WatermarkLayout.Diagonal document.Watermark = txtWatermark If chkProtegerSenha.Checked Then 'protegendo o documento com senha document.Encrypt(txtSenha.Text) ElseIf chkSomenteLeitura.checked Then 'protegendo somente leitura document.Protect(ProtectionType.AllowOnlyReading, txtSenha.Text) Else 'protegendo o documento com senha document.Encrypt(txtSenha.Text) End If 'salvando o documento document.SaveToFile(txtSalvarArquivoWord.Text, FileFormat.Docx) MessageBox.Show("Arquivo Word Protegido com sucesso.") Catch ex As Exception MessageBox.Show("Erro " + ex.Message) End Try End Sub |
Pegue o projeto completo aqui : Protegendo_DocumentosWord.zip (sem as referências)
Ele(o
anjo), porém, disse-lhes: Não vos assusteis; buscais a Jesus Nazareno, que foi
crucificado; já ressuscitou, não está aqui; eis aqui o lugar onde o puseram.
Marcos 16:6
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências: