JPDF- O fim do proxy para o ILovePDF
Eu sou bem iniciante no mundo Java. Então, estou realizando um projeto básico para trabalhar com PDFs. As principais funcionalidades que estou buscando são: Unir dois ou mais PDFs em um único documento e realizar a conversão de DOCX para PDF. Esses são problemas que enfrento na faculdade que estudo atualmente quando preciso realizar a entrega de documentos para os professores.
Problema
Basicamente, quando trabalho com outras pessoas realizando trabalho em conjunto, eu sempre gero um documento Word online para trabalharmos juntos. Nesse caso, o problema não existe, visto que a própria ferramenta utilizada disponibiliza essa função de conversão de DOCX para PDF. Contudo, quando meus amigos fazem os trabalhos deles, eles fazem em um documento offline para, só então, realizar a conversão para PDF.
Eu sei que existem um monte de sites online que realizam essas conversões de graça, como o ILovePDF. Entretanto, já virou a rotina deles me pedirem para fazer isso. Aliás, também já tentei ensinar como usar o ILovePDF, mas eles simplesmente amam me usar como Proxy para o ILovePDF. Então, decidi usar esse contexto para fazer uma ferramenta que realiza esse "trabalho" para mim.
Objetivo
O objetivo é ter uma ferramenta de linha de comando capaz de realizar tarefas básicas relacionadas a PDF e eliminar o meu trabalho de proxy. Além disso, também quero praticar um pouco de java, manejo de dependências no mundo Java e orientação a objetos.
Construção
Eu estava buscando um modo de construir essa aplicação onde a adição de novas funcionalidades relacionadas ao seu objetivo principal fosse feita de modo em que eu necessitasse alterar o código o MÍNIMO possível. Portanto, construi o meu próprio "parser" para entender os comandos da linha de comando e, com base nisso, realizei a construção de diversos "Builders" que constroem essa parte para mim.
Conceitos Aprendidos
- Sobrecarga de Métodos.
- Enhanced For.
- Nova definição de corno job feita com sucesso ao tentar manejar as dependências desse projeto sem um software gerenciador.
- HashMap
- Interfaces.
- Herança.
- Classes Abstratas.
- System.getProperty
- List
- ArrayList
- Arrays
- Manipulação de Strings
- Utilização de Bibliotecas de Terceiros.
Notas
- Para aquelas versados em Java, por favor, caso queiram e tenham tempo, analisem e digam o que pode melhorar e o que não pode. Estou totalmente aberto para críticas e sugestões de melhoria.
- Eu sei que esse problema é um problema já muito bem resolvido, mas tudo pelo aprendizado vale a pena.
Atualizações.
De ontem para hoje trabalhei em mais alguns aspectos: primeiramente, adicionei o gradle como build tool. Estava cansado de ficar fazendo as coisas na mão. Automaticamente, ganhei uma ferramenta de teste que o Intelij já coloca junto com o gradle e comecei a usá-la. Por fim, adicionei a funcionalidade de Conversão de DOCx para PDF. Agora vou terminar de construir os testes e ver no que dá!
Conteúdo bastante util vou dar uma olhada
Que belo trabalho, muito legal eu tenho mesmo problema mas acabei seguindo outra linha, Toda vez que me pedem isso eu falo, vá no google e pesquise, estou ocupado. apos x tentativas pararam de me pedir.