formularios eletronicos - coordenação de projetos · da d´ecada de 90, vem se tornando popular...

21
Formul´ arios Eletrˆ onicos Michel Zanini Departamento de Inform´ atica e Estat´ ıstica - Universidade Federal de Santa Catarina (UFSC) Caixa Postal 476 - 88040-900 - Santa Catarina - SC - Brasil Resumo. O presente trabalho visa demonstrar as vantagens de um fluxo de trabalho com formul´ arios eletrˆ onicos em rela¸ ao a um fluxo com formu- arios em papel. Como estudo de caso, formul´ arios em papel usados por professores e alunos do departamento de Inform´ atica e Estat´ ıstica (INE) da Universidade Federal de Santa Catarina (UFSC), ir˜ ao ser transformados em formul´ arios eletrˆ onicos e uma solu¸ ao ser´ a apresentada para agregar as van- tagens de documentos eletrˆ onicos ` a realidade do departamento. O formato PDF foi escolhido pois apresenta vantagens em rela¸ ao aos demais para inte- gra¸ ao em um fluxo de trabalho. Para criar um formul´ ario eletrˆ onico em PDF ´ e necess´ ario o Adobe Professional, um software propriet´ ario desenvolvido pela Adobe Systems. Ou cri´ a-lo utilizando uma ferramenta para manipula¸ ao de PDF, como o iText. Dessa forma, justifica-se a cria¸ ao de um visualizador PDF que permita preencher, salvar e assinar formul´ arios criados a partir do iText, sem a necessidade de adquirir o produto da Adobe. Abstract. The present paper aims to demonstrate the advantages of a work- flow using electronic forms comparing to a workflow through paper forms. As study case, paper forms used by professors and students of the Inform´ atica e Estat´ ıstica Department (INE) of the Federal University of Santa Cata- rina (UFSC), will be transformed into electronic forms and a solution will be presented to add the advantages of electronic documents into the needs of the department. The PDF format was chosen because it has advantages in relation to other formats for integration in a workflow. To create a PDF electronic form it is necessary to use the Adobe Professional, a comercial software developed at Adobe Systems or by using a PDF manipulation tool, like iText. In this case, it is justified the development of a PDF visualization tool that allows users to fill, save and sign forms without buying the Adobe’s product. 1

Upload: vuhuong

Post on 15-Dec-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Formularios Eletronicos

Michel Zanini

Departamento de Informatica e Estatıstica - UniversidadeFederal de Santa Catarina (UFSC)

Caixa Postal 476 - 88040-900 - Santa Catarina - SC - Brasil

Resumo. O presente trabalho visa demonstrar as vantagens de um fluxode trabalho com formularios eletronicos em relacao a um fluxo com formu-larios em papel. Como estudo de caso, formularios em papel usados porprofessores e alunos do departamento de Informatica e Estatıstica (INE) daUniversidade Federal de Santa Catarina (UFSC), irao ser transformados emformularios eletronicos e uma solucao sera apresentada para agregar as van-tagens de documentos eletronicos a realidade do departamento. O formatoPDF foi escolhido pois apresenta vantagens em relacao aos demais para inte-gracao em um fluxo de trabalho. Para criar um formulario eletronico em PDFe necessario o Adobe Professional, um software proprietario desenvolvido pelaAdobe Systems. Ou cria-lo utilizando uma ferramenta para manipulacao dePDF, como o iText. Dessa forma, justifica-se a criacao de um visualizadorPDF que permita preencher, salvar e assinar formularios criados a partir doiText, sem a necessidade de adquirir o produto da Adobe.

Abstract. The present paper aims to demonstrate the advantages of a work-flow using electronic forms comparing to a workflow through paper forms. Asstudy case, paper forms used by professors and students of the Informaticae Estatıstica Department (INE) of the Federal University of Santa Cata-rina (UFSC), will be transformed into electronic forms and a solution willbe presented to add the advantages of electronic documents into the needs ofthe department. The PDF format was chosen because it has advantages inrelation to other formats for integration in a workflow. To create a PDFelectronic form it is necessary to use the Adobe Professional, a comercialsoftware developed at Adobe Systems or by using a PDF manipulation tool,like iText. In this case, it is justified the development of a PDF visualizationtool that allows users to fill, save and sign forms without buying the Adobe’sproduct.

1

1 Introducao

Os documentos eletronicos trazem algumas vantagens sobre os analogos empapel:

• Sao faceis de procurar Mesmo que nao tiverem um ındice, propor-cionam ferramentas para facilitar a busca de texto.

• Sao faceis de armazenar Centenas de documentos eletronicos podemser armazenados sem ocupar consideravel espaco fısico.

• Sao faceis de distribuir Um documento pode ser enviado para ooutro lado do mundo em segundos.

Mas e claro que existem desvantagens. A facilidade de distribuicao pro-porcionada pelo meio eletronico pode tornar o documento alvo de pirataria ecopia ilegal. Um documento impresso possui legibilidade maior que um do-cumento visualizado em uma tela de computador. Alem disso, documentosfısicos ainda possuem credibilidade maior que os eletronicos.

Um formulario e um tipo especial de documento que oferece espacos embrancos para preenchimento de informacoes requeridas. Do inıcio da decadade 80 ate o presente os formularios em papel vem perdendo espaco para osformularios eletronicos digitais.

O formato PDF passou a dar suporte interno a formularios em 1996. Talrecurso, combinado com o suporte a assinaturas digitais adicionado no finalda decada de 90, vem se tornando popular em fluxos de trabalho eletro-nico. O formulario PDF substituı o formulario em papel em varios aspectos.Possui portabilidade entre sistemas operacionais e dispositivos, permitindoque possua aparencia unica. Permite assinaturas digitais, as quais apresen-tam mesma eficacia jurıdica comparada com assinaturas a mao. Mantem odocumento visıvel apenas para leitura, quando necessario.

Esse trabalho visa mostrar na teoria e pratica como formularios em papelpodem ser substituıdos por formularios eletronicos para permitir agilidade,confiabilidade e flexibilidade em um fluxo de trabalho. Como estudo de caso,formularios em papel usados por professores e alunos do departamento deInformatica e Estatıstica (INE) da Universidade Federal de Santa Catarina(UFSC), irao ser transformados em formularios eletronicos e uma solucao seraapresentada para agregar as vantagens de documentos eletronicos a realidadedo departamento.

2

2 Formularios Eletronicos

Formularios eletronicos retem varias caracterısticas de formularios em papel(GEHANI, 1982). Eles podem ser copiados, anotados, assinados, enviados pore-mail, submetidos para um sistema de informacao ou oferecer autocompletarautomatico para a entrada de dados. Outra caracterıstica significativa deum documento eletronico e sua preservacao prolongada. O suporte fısico dainformacao no papel pode se desintegrar ou tornar-se irrecuperavel. Ja omeio eletronico pode garantir preservacao por tempo indefinido, bastandotomar precaucoes com o local e o meio que estao armazenados (ARELLANO,2004).

Algumas vantagens da utilizacao de formularios eletronicos em relacaoaos em papel sao observadas a seguir:

• Facilidade de distribuicao Por estarem em meio eletronico, facilitamo envio e a distribuicao rapida para locais distantes atraves da redemundial de computadores.

• Agilidade no preenchimento Algumas facilidades podem estar pre-sentes para agilizar o preenchimento: autocompletar o texto digitado,acelerar a escolha de datas ou horarios atraves de calendarios e copiare colar textos repetitivos.

• Validacao da entrada de dados E possıvel configurar o formularioeletronico para validar a entrada de dados em campos. Por exemplo,permitir o preenchimento apenas com numeros entre zero e cem em umcampo numerico.

• Conservacao Formularios digitais podem ser armazenados em massasem ocupar enorme espaco fısico como os equivalentes em papel.

• Seguranca Ao restringir os rotulos de um formulario eletronico paraapenas leitura e permitindo que as unicas mudancas realizadas sejamno preenchimento dos campos, isola-se a possibilidade de rasuras e mo-dificacoes na estrutura do formulario. O uso de assinaturas digitaistambem reduz as possibilidades de fraude de identidade.

• Interoperabilidade Como e possıvel extrair as informacoes preenchi-das nos campos de um formulario eletronico, torna-se simples integra-loa um novo sistema de informacao ou base de dados de conhecimento,sem necessitar redigita-los.

3

• Integracao com fluxos de trabalho A principal vantagem de umformulario eletronico e proporcionar automacao de processos de nego-cios atraves de um fluxo de trabalho. Como o documento ja esta emformato digital torna-se facil integra-lo a um processo de negocio auto-matizado.

2.1 Formatos de formularios eletronicos

Formularios eletronicos podem ser construıdos em inumeros formatos dife-rentes, dependendo de suas necessidades. Para aplicacoes de formularioseletronicos disponıveis na Web geralmente adotam-se os formatos HTML ouXML. Para aplicacoes “stand-alone” os formatos de aplicativos de escritorio,como o Microsoft Office, e formularios construıdos em uma interface gra-fica sao os mais comuns. Um formato ainda pouco difundido no mercadoe o PDF que permite uma boa integracao tanto com aplicacoes Web como“stand-alone”. Cada formato possui restricoes e vantagens. A escolha dequal adotar depende das necessidades e requisitos para solucao do problemaproposto.

Todos os formatos necessitam de softwares ou configuracoes adicionais.Quando o formulario baseado em interface grafica nao necessita de infra-estrutura adicional e porque, geralmente, a linguagem utilizada gerou umexecutavel nativo de sistema operacional (nao portavel). Todos os formatospodem ser utilizados apenas com softwares gratuitos. A tabela 1 demons-tra os recursos que as tecnologias oferecem para construcao de formularioseletronicos.

3 Adobe Acrobat e o formato PDF

O mais completo e reconhecido produto para criacao e manipulacao de ar-quivos no formato PDF e desenvolvido pela propria empresa criadora doformato, a Adobe Systems. A empresa foi fundada em dezembro de 1982 porJohn Warnock e Charles Geschke. Eles saıram da Xerox PARC com objetivode comercializar a linguagem de descricao de paginas PostScript (SYSTEMS,2007a). A linguagem fornece uma maquina de pilha e comandos especıficospara o desenho de letras e figuras, incluindo comandos de tracado e formasde representacao de imagens.

1Utilizando JavaScript2Recurso do navegador web

4

Recurso HTML XML Int. Grafica Office PDFOcultar / mostrar regioesdo formulario

Sim1 Sim Sim Nao Nao

Validacao na entrada dedados

Sim1 Sim Sim Nao Sim

Nao permitir edicao derotulos

Sim Sim Sim Nao Sim

Autocompletar textos Sim2 Sim2 Sim Nao SimComponentes interativosde selecao

Sim Sim Sim Nao Sim

Suporte a assinaturas di-gitais

Nao Nao Nao Nao Sim

Tabela 1: Recursos oferecidos pelas tecnologias de definicoes de formularioseletronicos

3.1 Portable Document Format

Portable Document Format e uma combinacao de tres tecnologias:

• A linguagem de descricao de paginas PostScript, para descrever os gra-ficos e leiaute.

• Um sistema de substituicao de fontes para permitir que as fontes mantenham-se portaveis.

• Um sistema de armazenamento estruturado para conter todos os ele-mentos que fazem parte do documento em um unico arquivo, com com-pressao de dados quando necessario.

O formato sofreu varias alteracoes ao longo dos anos, conforme a versaodo software da Adobe foi evoluindo. Ja foram lancadas oito versoes do for-mato: 1.0 (1993), 1.1 (1994), 1.2 (1996), 1.3 (1999), 1.4 (2001), 1.5 (2003),1.6 (2005), e 1.7 (2006) (WIKIPEDIA, 2007b). A versao 1.0 do formato PDFcorresponde a primeira versao do Adobe Acrobat e da 1.1 a 1.7, respectiva-mente, as versoes subsequentes. Atualmente o formato PDF se encontra naversao 1.7 e a famılia de produtos Adobe Acrobat (Adobe Reader e AdobeProfessional) na versao 8.0.

3.2 Propriedade intelectual da especificacao PDF

A Adobe possui o copyright sobre as especificacoes PDF, mas para promovero uso do Portable Document Format com interoperabilidade com os diversos

5

produtos e aplicacoes, a Adobe permite o direito de (SYSTEMS, 2007b):

• Construir arquivos de acordo com a especificacao PDF.

• Escrever aplicacoes que aceitem PDF como entrada de dados e apre-sentem, imprimam ou interpretem seu conteudo.

• Copiar ou escrever as estruturas e operadores da especificacao PDF queforem necessarios para atingir os itens acima.

• As aplicacoes criadas que utilizarem o formato devem manter as per-missoes de acesso definidas pelo usuario.

3.3 Famılia de produtos Adobe Acrobat 8

Existem cinco softwares na famılia de produtos Adobe Acrobat 8. Um deles,o Adobe Reader, permite a visualizacao de documentos no formato PDF bemcomo procura e selecao de textos. Os documentos abertos pelo Reader naopodem ser alterados, apenas vistos. Os quatros restantes permitem os mes-mos recursos do Reader e manipulacao e criacao de documentos no formatoPDF. Sao separados de acordo com os recursos oferecidos.

O Adobe Acrobat Elements 8 possui funcionalidades simples de criacao econversao de documentos PDF, possibilitando uso de senhas e aplicacao dealgumas restricoes. O Adobe Abrobat Standard 8 permite manipulacao decomentarios, arquivos anexos, ferramentas de colaboracao e juncao de docu-mentos para produzir um unico arquivo PDF. O Adobe Acrobat Professional8 permite habilitar permissoes para que usuarios do Adobe Reader possamassinar e preencher formularios. Ja o Adobe Acrobat 3D 8 e capaz de unirgraficos CAD ao documento PDF.

3.4 Habilitar recursos para o Adobe Reader

Em documentos comuns o Adobe Reader e limitado a visualizacao e impres-sao do PDF, porem o Adobe Professional e capaz de habilitar o documentopara que alguns de seus recursos possam ser usados por usuarios no AdobeReader. Os recursos que podem ser habilitados para o Adobe Reader sao osseguintes:

• Assinaturas digitais Torna-se disponıvel no Reader um botao “Assi-nar” (Sign) capaz de assinar o documento. Por padrao o Reader sem-pre e capaz de verificar a legalidade das assinaturas (alteracoes no do-cumento posteriores a assinatura, revogacao, autoridade certificadoraconfiavel e carimbo de tempo).

6

• Dados de formularios Torna-se possıvel preencher e salvar dadosem formularios localmente, assim como exportar e importar dados esubmete-los por e-mail ou web. Por padrao o Reader e capaz ape-nas de imprimir os dados preenchidos de um formulario, sem salva-loslocalmente.

• Ferramentas de colaboracao Uma barra de ferramentas nova e adi-cionada ao menu de opcoes do Adobe Reader. A barra de ferramentaspermite adicionar comentarios, marcacoes e carimbos, assim como pe-quenas alteracoes de texto.

3.4.1 Assinaturas digitais

O documento PDF suporta assinaturas digitais internamente em sua estru-tura. O Adobe Acrobat e capaz de ler as assinaturas e mostra-las para ousuario, inclusive verificando sua legalidade. No Adobe Professional e possı-vel assinar o documento em qualquer lugar da pagina. Ja no Adobe Reader epossıvel assinar o documento apenas se existir um campo de formulario comtal finalidade e o documento tiver sido habilitado para tal.

3.4.2 Diferencas entre assinatura e certificacao

Na nomenclatura do Adobe Acrobat existem diferencas entre certificar e as-sinar um documento digital.

Certificar o documento e o processo de assinatura realizado geralmentepelo autor do documento. Certificar o documento inibe mudancas posterio-res. Ao certificar o documento e permitido selecionar uma das tres opcoes:nao permitir mais mudancas, permitir apenas preenchimento de formulariose assinaturas ou permitir preenchimento, assinaturas e comentarios. Certifi-car nao deixa de ser uma assinatura, porem a principal diferenca e que ela efeita pelo autor do documento.

Assinar o documento esta relacionado com outras entidades que por ven-tura queiram comprovar sua aprovacao em relacao ao que esta escrito. Epermitido inclusive mais de uma assinatura ao documento, porem apenasuma certificacao.

Por exemplo, uma universidade cria um formulario eletronico em PDF elogo apos o certifica para que mudancas no formulario nao sejam possıveis(apenas preenchimento e assinaturas). A certificacao tambem prova a origemdo formulario. O formulario e preenchido e assinado por um professor, logoapos enviado para o coordenador do curso. O coordenador assina e o processoe concluıdo.

7

3.4.3 Formularios

O documento PDF suporta criacao de formularios eletronicos, tambem refe-renciados como AcroForms. Um documento PDF pode conter qualquer nu-mero de campos espalhados por todas as paginas. Todos os campos formamum unico formulario, ou seja, cada PDF pode conter apenas um formulario.

O Adobe Acrobat Professional permite preencher e salvar os dados lo-calmente no computador, porem pelo Adobe Reader e permitido apenas im-primir os dados preenchidos, nao ha a possibilidade de salva-los localmente.Se a restricao for desabilitada no documento PDF, o Adobe Reader tambempodera salva-lo.

Um software chamado Adobe LifeCycle Designer 8 e instalado em con-junto com o Adobe Professional. Sua unica finalidade e criacao e edicaografica de formularios no estilo RAD (Rapid Application Development).

4 Proposta e projeto

4.1 Solucao proposta

Todo fluxo de trabalho eletronico deve priorizar a comodidade e facilidadepara seus usuarios. Sem essas caracterısticas o usuario nao ira se adequar aofluxo proposto e ira preferir o fluxo tradicional. Dessa forma, uma solucaopratica deve ser proposta. Todas as ferramentas necessarias devem ser faceisde usar e adquirir, sem necessidade de locomocao fısica.

Um fluxo de trabalho envolvendo formularios eletronicos com assinaturadigital possui duas dificuldades principais para o usuario final. A primeiradiz respeito a obtencao de seu certificado digital, para que possa participarde transacoes eletronicas seguras. A segunda dificuldade e gerenciar todos osartefatos necessarios como: formularios, senhas, certificados e enderecos dee-mail.

Uma abordagem para resolver o primeiro problema e disponibilizar umaAutoridade Certificadora (AC) para que os usuarios do fluxo possam facil-mente requisitar e obter seus certificados.

Para solucionar o segundo problema pode-se utilizar um servidor de di-retorios LDAP (Lightweight Directory Access Protocol). Um servidor dediretorios poderia armazenar os formularios, certificados, chaves privadas edemais recursos, de forma hierarquica e segura para cada usuario. Outrassolucoes possıveis fariam uso de banco de dados relacionais ou servidoresremotos rodando alguma aplicacao que gerenciaria os recursos citados.

No caso particular do departamento de Informatica e Estatıstica (INE)existiriam dois tipos de usuarios diferentes: o projetista e o usuario comum.

8

O projetista e responsavel por criar formularios eletronicos em PDF. Istopode ser feito utilizando a ferramenta iText (ferramenta escrita em Javapara manipulacao de documentos PDF) ou um software proprietario comoo Adobe Professional. No caso da ferramenta iText e necessario criar umprograma capaz de desenhar o formulario ou construir uma ferramenta capazde facilitar esse trabalho para o projetista. O usuario comum ira participardo fluxo de trabalho assinando, salvando, enviando e exportando formularios.Como muitas dessas tarefas nao sao permitidas por leitores de PDF como oAdobe Reader, e necessario um software capaz de faze-lo como o AdobeProfessional. Ou um software novo que ofereca tais facilidades.

A figura 1 esquematiza a solucao proposta, de acordo com o ponto devista do usuario e do projetista.

Figura 1: Visao geral do fluxo de trabalho para a solucao proposta

No momento 1 o formulario eletronico e criado pelo projetista utilizandoum ferramenta como o iText ou software similar. No momento 2 o usuarioabre o formulario criado pelo projetista utilizando o visualizador de PDF que

9

sera implementado no presente trabalho. A partir do visualizador o usuariopode salvar o documento com os dados do formulario inclusos (12). A op-cao 11 permite exportar os dados do formulario para XML em um formatopadrao, o que permite usa-los para preencher outro formulario ou mesmoserem salvos em um banco de dados. E possıvel enviar o documento PDFpor e-mail como anexo (9). O destinatario do e-mail pode continuar o fluxo,assinando o formulario (8) utilizando sua chave privada e certificado digital.O formulario pode ser compartilhado ou mantido seguro no servidor de di-retorios (6) assim como o certificado digital que pode ser obtido a partir daautoridade certificadora (4). Para garantir seguranca no envio do formula-rio pode-se criptografa-lo (7). O formulario ainda pode ser impresso (10).As funcionalidades 2 e de 7 a 12 estarao implementadas no software paravisualizacao e manipulacao de formularios PDF apresentado nos proximoscapıtulos desse trabalho. As demais funcionalidades podem ser estendidasem trabalhos futuros.

4.2 Formularios no INE

A secretaria do departamento de Informatica e Estatıstica (INE) utiliza for-mularios em papel para que professores ou alunos possam preencher solicita-coes de seu interesse. Os principais formularios utilizados sao:

• Diarias e passagens Formulario preenchido por professores para so-licitar viagens.

• Requerimento de prova Formulario preenchido por alunos para so-licitar uma nova prova, justificando sua falta na prova anterior.

• Solicitacao de alteracao de nota Formulario preenchido por profes-sores para solicitacao de alteracao de nota de algum aluno.

• Solicitacao de bolsa de treinamento Solicitacao para oferecer bolsade treinamento.

• Validacao de disciplina Preenchido por alunos para validar discipli-nas que ja tenham feito em outra oportunidade.

Apos realizada a pesquisa, constatou-se que os formularios em papel pos-suıam copia digital no formato office. Dessa forma, o primeiro passo foiconverte-los para o formato PDF. A conversao pode ser feita utilizando oAdobe Professional ou alguma ferramenta livre como o iText. Nesse caso foiutilizado o Adobe Professional (versao trial de 30 dias) durante a fase detestes do software.

10

4.3 Tecnologias utilizadas

Essa secao descreve as tecnologias e ferramentas utilizadas para construcaodo visualizador e assinador de PDF.

4.3.1 Java

Java e uma linguagem de programacao orientada a objetos desenvolvida pelaSun Microsystems na decada de 90. Aplicacoes desenvolvidas em Java saocompiladas e resultam em um codigo portavel chamado bytecode. A MaquinaVirtual Java interpreta ou compila o bytecode para codigo nativo.

A sintaxe da linguagem em si e semelhante a C / C++. Possui um modelode objetos mais simples e tem menos facilidades de baixo nıvel. JavaScript,uma linguagem de script, divide nome e sintaxe semelhante a Java, poremnao esta diretamente relacionada com a mesma.

A Sun Microsystems fornece uma implementacao sob licenca GNU (Gene-ral Public License) do compilador (javac), da maquina virtual e da bibliotecade classes requeridas para rodar programas em Java.

A linguagem Java e conhecida por enfatizar as seguintes caracterısticas(WIKIPEDIA, 2007a):

• Programacao orientada a objetos.

• Portabilidade entre sistemas operacionais.

• Suporte da linguagem para redes de computadores.

• Suporte da linguagem para chamada remota de procedimentos de formasegura.

4.3.2 iText

iText e uma biblioteca de classes Java, distribuıda sob licenca GPL, comobjetivo de produzir e manipular documentos no formato PDF. Atraves daferramenta e possıvel criar um arquivo PDF do zero ou abrir um existente emanipula-lo.

Bruno Lowagie comecou o desenvolvimento do iText em 1998 a partirda necessidade de construir uma aplicacao para administracao de estudantesna universidade de Ghent (Belgica) onde trabalhava (LOWAGIE, 2006). Oantigo sistema de administracao de estudantes funcionava apenas em MS-DOS e os documentos dependiam de uma impressora especıfica para seremvistos. Para obter portabilidade, ele decidiu utilizar Java e o formato PDF,

11

pois os professores utilizavam diferentes sistemas operacionais e configuracoesde maquina.

Nos dias atuais a biblioteca iText e utilizada por varios servicos e ou-tras ferramentas. Produtos em Java que permitem geracao de relatorios emPDF geralmente utilizam o iText como “engine” para desenhar o PDF embaixo nıvel. Nao apenas Java como tambem outras linguagens de programa-cao. O iText foi portado para .Net e e utilizado tambem por produtos daMacromedia.

4.3.3 JPedal

JPedal e uma biblioteca de classes Java utilizada para visualizar ou extrairconteudo de um arquivo PDF. Atraves da biblioteca e possıvel mostrar umdocumento PDF na tela, porem com qualidade inferior a um visualizadorcomo o Adobe Reader.

O JPedal e distribuıdo em duas versoes com licencas de software diferen-tes. A versao “standard” e de codigo aberto e pode ser usada gratuitamentedesde que seja utilizada em um projeto GPL. Para utiliza o JPedal em umprojeto comercial e necessario adquirir o produto. A versao “enhanced” pos-sui alguns recursos a mais e tambem e comercial.

O JPedal e capaz de extrair imagens e textos de um arquivo PDF paraque possam ser utilizados fora do documento. Tambem e capaz de visualizarum documento PDF, inclusive com comentarios e formularios. No modovisualizador e capaz de exibir zoom e bookmarks.

4.4 Modelagem de requisitos

4.4.1 Requisitos funcionais

• Permitir assinar digitalmente formularios PDF em sua estrutura in-terna.

• Permitir o envio do formulario PDF por e-mail.

• Permitir impressao do documento.

• Permitir preencher e salvar dados no formulario.

• Permitir verificar a autenticidade das assinaturas presentes do PDF.

• Permitir criptografar o documento PDF para que possa ser enviado deforma segura.

• Permitir exportar os dados do formulario para XML.

12

• Permitir importar dados de um XML para o formulario.

• Dar suporte a ferramentas de zoom e controle de visualizacao.

• Dar suporte a ferramentas de rotacao de pagina.

• Dar suporte a busca de textos no documento.

• Dar suporte a ferramentas de ajuste do tamanho da pagina em relacaoao tamanho da tela.

4.4.2 Requisitos nao-funcionais

• Subdividir a aplicacao em camadas bem definidas para permitir flexi-bilidade e facilidade na manutencao.

• Focar em aspectos referentes a usabilidade do sistema.

• Procurar diminuir o tempo de resposta da aplicacao.

5 Implementacao e resultados

5.1 Prototipo

A partir dos requisitos e casos de uso projetados um prototipo foi construıdo.A funcao do prototipo e validar as funcionalidades do sistema, buscando amelhor maneira de implementa-las. O visualizador e uma aplicacao grafica,semelhante aos leitores de PDF tradicionais como o Adobe Reader. O menude opcoes no topo da tela oferece facil navegacao para todas as opcoes ofere-cidas.

Quatro menus foram criados: arquivo, visualizar, documento e opcoes. Omenu arquivo apresenta as opcoes basicas de abrir, salvar, imprimir e enviar odocumento por e-mail. O menu visualizar da acesso as opcoes de manipulacaoda aparencia do PDF na tela. Nesse menu e possıvel ajustar o zoom e arotacao da pagina, bem como selecionar uma pagina especifica para visualizarou realizar uma pesquisa textual. O menu documento permite selecionar asopcoes relacionadas a seguranca como: assinar, verificar assinaturas e cifrardocumento. Tambem e possıvel exportar o documento para XML ou ver suaspropriedades. O menu opcoes oferece um item para configuracao do servidorpara envio de e-mails. A barra de menus pode ser vista na figura 2.

Para fornecer acesso rapido as opcoes mais frequentes presentes no menu,foi criada uma barra de ferramentas. Abaixo da barra de ferramentas segueuma area de trabalho livre, para ser ocupada pelo documento PDF. Na area

13

Figura 2: Menus de opcoes do leitor de PDF

inferior da tela esta a barra de navegacao que permite passar ou voltar paginasdo documento. A figura 3 detalha as operacoes da barra de ferramentas e dabarra de navegacao.

Figura 3: Opcoes da barra de ferramentas e da barra de navegacao

O prototipo demonstrado na figura 3 foi avaliado e considerado satis-fatorio para elaborar o projeto. A partir de entao passou-se a adicionarfuncionalidades a interface que ate entao nao as possuıa.

14

5.2 Visualizando o PDF

O principal objetivo apos o termino do prototipo foi construir os mecanismosnecessarios para exibir o PDF na tela do visualizador. Para tal, a biblio-teca de classes JPedal foi usada. A biblioteca oferece rotinas e suporte parapermitir a visualizacao do PDF em um painel da interface grafica Swing doJava. Um painel central foi elaborado para comportar o PDF. Tal painel ecentralizado de acordo com o zoom atual do documento e distancias da bordada janela do leitor.

5.3 Formularios eletronicos

O proximo passo foi implementar o suporte a preenchimento de formulariosPDF. O JPedal oferece suporte a preenchimento do formulario, porem naopermite salva-lo. Para que os dados preenchidos possam ser salvos na ma-quina local a biblioteca iText foi utilizada. Assim, o processo consiste emretirar os dados preenchidos pelo usuario e mescla-los com os campos de for-mulario no PDF original, produzindo o novo PDF preenchido. O formularioatual e fechado e o novo formulario preenchido e aberto. Apos os dados seremsalvos ainda e possıvel edita-los e salva-los novamente. Para implementar talfuncionalidade foi necessario traduzir alguns elementos de definicao do for-mulario na estrutura do PDF, permitindo que campos de selecao multiplafossem salvos da forma correta.

Outra funcionalidade implementada foi detectar quando o formulario pos-suı campos de assinatura, e entao, desenhar uma imagem escrito“Assine aqui”caso o campo nao esteja assinado, e uma imagem representando o estado devalidacao da assinatura, caso esteja assinado.

5.4 Aplicando assinatura digital ao formulario

Existem duas formas para aplicar uma assinatura digital ao formulario. Aprimeira e acionando o botao “Assinar” no menu ou barra de ferramentas.A segunda e clicando no botao “Assine aqui” desenhado nos campos de as-sinatura. Ambas as formas exibem a tela de selecao de certificado digitaldemonstrada na figura 4. Porem, a segunda forma e mais pratica, pois trazo campo de assinatura desejado ja selecionado.

5.5 Verificando assinaturas digitais

A verificacao das assinaturas diz respeito a valida-las segundo os seguintescriterios: perıodo de validade do certificado, status de revogacao do certifi-

15

Figura 4: Tela de selecao de certificado digital

cado, alteracoes posteriores a assinatura, validacao da cadeia de certificadose confianca no certificado raiz. Caso algum problema existir, a assinaturaapresenta o status e a mensagem adequada. O repositorio de certificadosraiz do Windows foi usado como repositorio de certificados confiaveis paravalidar a raiz da cadeia. Futuramente devera ser adequado a selecao de ou-tras fontes para serem usadas como repositorio, como um arquivo PKCS #12 ou KeyStore do Java.

A validacao ocorre ao abrir um documento PDF assinado ou ao acessodo item de menu “Verificar assinaturas”. O status da assinatura e demons-trado pelo proprio campo presente no PDF e, tambem, aparece em maisdois pontos: uma aba lateral contendo os resumos dos campos assinados enao assinados e um dialogo bem detalhado exibido ao acesso do item demenu “Verificar assinaturas”. A figura 5 ilustra o status de uma assinaturaconsiderada invalida por ter sido alterado o documento apos a aplicacao daassinatura. Note os tres pontos que demonstram o status da assinatura.

5.6 Criptografando o documento PDF

Atraves do item de menu “Criptografar documento” e possıvel aplicar crip-tografia ao PDF tornando-o seguro e confidencial. E possıvel criptografa-lousando uma senha, nesse caso ela sera requerida para abrir o arquivo. Cincopermissoes podem ser revogadas aos usuarios do documento. Dentre elas:imprimir, copiar, preencher formulario, comentar e modificar conteudo. A

16

Figura 5: Status de uma assinatura apresentada em diferentes formas

tela da figura 6 demonstra como o processo e realizado pelo usuario. A senhae informada e tambem as permissoes e, em seguida, o documento e cripto-grafado.

Figura 6: Dialogo de criptografia do documento

17

5.7 Importar e exportar dados de formularios

Quando o documento PDF possuı formulario e possıvel exporta-lo para oformato FDF, que e um formato estrutural onde apenas os dados de preen-chimento do formulario sao armazenados. Esses arquivos sao muito menoresem tamanho comparados a um PDF normal. Dessa forma e possıvel arma-zenar um modelo de formulario em PDF, e os dados preenchidos em FDF.Entao, e possıvel compactar o armazenamento, e quando necessario, a im-portacao pode mesclar os arquivos novamente, formando um PDF completoe preenchido. Atraves do leitor de PDF e possıvel realizar tais operacoesatraves dos itens do menu “Documento”.

5.8 Envio de documento por e-mail

Para enviar o documento PDF por e-mail e necessario configurar um servidorSMTP (Simple Mail Transfer Protocol). Essa configuracao e feita uma unicavez atraves do dialogo representado pela figura 7. Com o servidor configuradoe possıvel clicar no botao “E-mail” e a tela 8 se exibira. O usuario podeinformar o e-mail de destino, assunto e tambem a mensagem desejada. Aoclicar em “Confirmar” o e-mail e enviado com o documento PDF em anexo.

Figura 7: Dialogo de configuracao do servidor SMTP

5.9 Exibicao de marcadores

Uma aba de marcadores (bookmarks) foi criada para agilizar a navegacao dousuario sobre grandes documentos. O painel exibe a hierarquia de marcadosno formato de arvore e e possıvel clicar sobre um nodo para ir ate a paginarepresentada pelo marcador. A figura 9 demonstra um livro aberto com seusmarcadores exibidos na regiao esquerda da imagem.

18

Figura 8: Dialogo de envio de documento por e-mail

Figura 9: Painel de marcadores

5.10 Impressao de documento

Atraves do menu “Arquivo” a opcao “Imprimir” pode ser acessada para im-pressao do documento PDF. O dialogo de impressao da figura 10 e exibido.

19

Atraves dele o usuario pode escolher o numero de copias, posicao da paginae demais configuracoes de impressora. Ao confirmar a impressao o arquivoPDF e enviado ao servico de impressao do sistema operacional e o documentoe impresso.

Figura 10: Dialogo de impressao

5.11 Dificuldades encontradas

A biblioteca JPedal demonstrou-se mal projetada. Seu codigo fonte estabastante confuso e a documentacao e pobre. Alem disso, a decodificacao doarquivo PDF para ser exibido na tela mostrou-se lento quando o PDF possuıtabelas ou imagens de alta resolucao, com desempenho inferior a maioria dosleitores PDF tradicionais.

A biblioteca iText apresentou poucas dificuldades e parece bastante es-tavel. Algumas funcoes esperadas ainda nao estao presentes na bibliotecada versao atual. Por isso, algumas funcionalidades planejadas nao puderamser implementadas, como por exemplo, a verificacao de uma assinatura comcertificacao.

6 Conclusoes

6.1 Consideracoes finais

Nesse trabalho foi apresentado a implementacao de um visualizador de ar-quivos PDF capaz de preencher, salvar, assinar e exportar dados em um

20

formulario. O visualizador possui algumas funcionalidades adicionais em re-lacao a um leitor tradicional de documentos PDF.

O software apresentado faz parte de uma solucao mais ampla. A solucaoapresenta a visao de um fluxo de trabalho que utiliza formularios eletronicoscom objetivo de agilizar e facilitar o processo que antes era feito de forma pre-sencial. Nessa solucao dois papeis sao necessarios. O projetista e o usuario.O projetista constroi os formularios eletronicos em PDF enquanto o usuarioutiliza o visualizador para dar continuidade ao fluxo.

6.2 Trabalhos futuros

Para completar o fluxo da solucao proposta e necessario implementar umaferramenta capaz de auxiliar o projetista a construir seus formularios semutilizar o Adobe Professional. Isso seria feito com auxılio da ferramentaiText.

Para finalizar, tambem e necessario implementar a comunicacao do usua-rio com a autoridade certificadora e o servidor de diretorios. Essa implemen-tacao poderia ser feita no proprio visualizador para simplificar a tarefa parao usuario.

Referencias

ARELLANO, M. A. Preservacao de documentos digitais. 2004.Disponıvel em: <http://www.scielo.br/pdf/ci/v33n2/a02v33n2.pdf>.

GEHANI, N. H. The potential of forms in office automation. IEEETransactions on Communications, v. 30, 1982.

LOWAGIE, B. iText in Action. [S.l.]: Manning, 2006. ISBN 1-932-39479-6.

SYSTEMS, A. Adobe History. 2007. Acesso em: 17 maio 2007. Disponıvelem: <http://www.adobe.com/aboutadobe/pressroom/pdfs/timeline.pdf>.

SYSTEMS, A. PDF Reference. 2007. Acesso em: 15 maio 2007. Disponıvelem: <http://www.adobe.com/devnet/pdf/pdf reference.html>.

WIKIPEDIA. Java (programming language). 2007. Acesso em: 17 maio2007. Disponıvel em: <http://en.wikipedia.org/wiki/Java>.

WIKIPEDIA. Portable Document Format. 2007. Acesso em: 17 maio2007. Disponıvel em: <http://en.wikipedia.org/wiki/PDF>.

21