Este projeto contém uma coleção de serviços para manipulação de arquivos PDF, incluindo conversão de PDF para texto, redução de resolução de PDF e um serviço de logs. Cada serviço é implementado em um contêiner Docker separado para facilitar o desenvolvimento, a implantação e a escalabilidade.
Este serviço converte arquivos PDF para texto. Ele aceita um arquivo PDF via upload, processa o arquivo para extrair o texto e envia o resultado de volta ao cliente via um arquivo .txt. Além disso, registra a operação no serviço de logs.
Este serviço reduz a resolução de arquivos PDF. Ele aceita um arquivo PDF via upload, reduz a resolução do arquivo, utilizando o software Ghostscript, conforme a seleção do usuário e envia o resultado de volta ao cliente. Também registra a operação no serviço de logs.
Este serviço registra todas as operações realizadas pelos serviços de PDF to TEXT e PDF Reducer. Ele mantém um registro das operações e pode emitir relatórios conforme necessário.
Certifique-se de que você tem o Docker instalado na sua máquina. Você pode fazer o download e instalar o Docker a partir do site oficial do Docker.
Se o seu projeto utiliza o Docker Compose, você também precisará instalá-lo. O Docker Compose geralmente é incluído com o Docker Desktop. Mais informações sobre a instalação podem ser encontradas na documentação oficial do Docker Compose.
Para executar o projeto, siga estes passos:
-
Clone o repositório para a sua máquina local:
git clone https://github.com/enzomazocorodrigues/pdf-converter.git
-
Navegue até o diretório do projeto:
cd pdf-converter -
Construa e execute os containers:
docker-compose up --build
Você pode testar os serviços utilizando ferramentas como curl, Postman ou até mesmo um browser.
curl -X POST -H "Authorization: your_pdftotxt_token" -F "file=@/caminho/para/seu/arquivo.pdf" http://localhost:5001/uploadcurl -X POST -H "Authorization: your_pdftotxt_token" -F "file=@/caminho/para/seu/arquivo.pdf" -F "resolution=default" http://localhost:5002/uploadcurl http://localhost:5003/
Benjamin Kim
Eduardo Trova
Enzo Rodrigues
Matheus Pfau