- Introdução
- Tecnologias Utilizadas
- Pré-requisitos
- Sistemas Operacionais Principais
- Propósito
- Baixando as libs
- Ambiente Isolado
- Bibliotecas Usadas
- Arquitetura de Pasta e Arquivos
- Princípios SOLID Utilizados
- Programação Orientada a Objetos
- Como Usar
- Utilizando o Arquivo Executável
Este projeto é um conversor de arquivos PDF para o formato MOBI, amplamente usado em dispositivos Kindle. O objetivo principal é fornecer uma ferramenta simples para converter documentos PDF em um formato compatível com leitores de e-books Kindle.
- Python
- Calibre (ebook-convert)
- PyQt6
- BeautifulSoup4 (bs4)
- Pillow (PIL)
- Sistema Operacional Linux (Ubuntu)
Antes de usar este projeto, é necessário ter os seguintes pré-requisitos instalados:
- Python 3.x
- Calibre
- PyQt6
- BeautifulSoup4
- Pillow
Este projeto foi desenvolvido e testado principalmente no seguinte sistema operacional:
- Ubuntu Linux
O propósito deste projeto é oferecer uma maneira fácil e eficaz de converter arquivos PDF em MOBI para que eles possam ser lidos em dispositivos Kindle ou em aplicativos de leitura compatíveis com MOBI.
O arquivo requirements.txt
é uma maneira eficaz de gerenciar as dependências de um projeto Python. Ele permite que você especifique as bibliotecas e suas versões exatas que são necessárias para garantir que o projeto seja executado de forma consistente em diferentes ambientes. O processo de utilização do requirements.txt
envolve a criação, atualização e instalação das dependências listadas no arquivo.
- Crie um arquivo chamado
requirements.txt
na raiz do seu projeto. - Liste todas as bibliotecas que seu projeto depende, uma por linha, no seguinte formato:
biblioteca==versão
Por exemplo, para incluir a biblioteca requests
na versão 2.26.0
, adicione a seguinte linha:
requests==2.26.0
- Adicione todas as outras bibliotecas utilizadas no seu projeto, especificando suas versões conforme necessário.
- À medida que você adiciona ou atualiza bibliotecas em seu projeto, certifique-se de manter o arquivo
requirements.txt
atualizado. - Sempre especifique versões exatas das bibliotecas para garantir a consistência em diferentes ambientes. Você pode usar comandos como
pip freeze
para gerar uma lista das bibliotecas atualizadas em seu ambiente virtual e copiá-las para o arquivorequirements.txt
.
- Antes de executar o projeto em um novo ambiente, certifique-se de que o Python e o gerenciador de pacotes
pip
estejam instalados. - Crie um ambiente virtual Python usando
venv
,virtualenv
ou outro método de sua escolha:
python -m venv myenv
source myenv/bin/activate # Ative o ambiente virtual (Linux/macOS)
- Para instalar todas as dependências listadas no arquivo
requirements.txt
, execute o seguinte comando:
pip install -r requirements.txt
Isso garantirá que todas as bibliotecas e suas versões correspondentes sejam instaladas no ambiente virtual.
Agora que todas as dependências estão instaladas no ambiente virtual, você pode executar o projeto de forma consistente em qualquer ambiente. Ative o ambiente virtual, navegue até a raiz do projeto e execute o código conforme necessário.
source myenv/bin/activate # Ative o ambiente virtual (Linux/macOS)
cd /caminho/para/seu/projeto
python seu_script.py
Isso garante que seu projeto funcione com as versões específicas das bibliotecas listadas no requirements.txt
, proporcionando uma experiência consistente para você e outros colaboradores.---
Você pode criar um arquivo utilizando_requirements.md
com essas informações e incluí-lo na documentação do seu projeto. Este guia ajudará a garantir que as dependências do seu projeto sejam gerenciadas de forma eficaz, facilitando o desenvolvimento e a colaboração.
É altamente recomendável configurar um ambiente virtual Python para isolar este projeto das bibliotecas globais do sistema. Você pode usar venv
ou virtualenv
para criar um ambiente virtual.
python3 -m venv .venv
source .venv/bin/activate # Ativar o ambiente virtual
Este projeto utiliza várias bibliotecas Python, incluindo:
- Calibre: Para realizar a conversão de PDF para MOBI.
- PyQt6: Requerido pelo Calibre.
- BeautifulSoup4 (bs4): Utilizado para análise HTML.
- Pillow (PIL): Utilizado para manipulação de imagens.
conversor_pdf_mobi.py
: O script principal para a conversão de PDF para MOBI.converted_mobi/
: Pasta onde os arquivos MOBI resultantes são salvos.- Outros arquivos e pastas relacionados ao ambiente virtual, se configurado.
Neste projeto, seguimos os princípios SOLID da seguinte maneira:
- Single Responsibility Principle (SRP) : O código do script
conversor_pdf_mobi.py
é focado na conversão de PDF para MOBI, mantendo uma única responsabilidade. - Open/Closed Principle (OCP) : O código pode ser estendido para suportar mais funcionalidades ou tipos de conversão sem modificar a lógica existente.
- Liskov Substitution Principle (LSP) : Não aplicável neste contexto.
- Interface Segregation Principle (ISP) : Não aplicável neste contexto.
- Dependency Inversion Principle (DIP) : O código depende de abstrações (ex:
subprocess.run
) em vez de implementações concretas.
O projeto utiliza a programação orientada a objetos (OOP) para organizar e encapsular a funcionalidade de conversão de PDF para MOBI.
PDFConverter
: Uma classe que representa um conversor de PDF para MOBI, encapsulando a lógica de conversão.main()
: A função principal que interage com o usuário para fornecer o caminho do arquivo PDF a ser convertido.
Para iniciar a conversão de um arquivo PDF para MOBI, siga estas etapas:
- Certifique-se de que todos os pré-requisitos estejam instalados, incluindo Python 3.x, Calibre, PyQt6, BeautifulSoup4 e Pillow.
- Clone ou baixe este repositório em seu sistema.
- Abra um terminal ou prompt de comando e navegue até o diretório onde você baixou/clonou o projeto.
- Ative um ambiente virtual Python, se desejar isolar o projeto do ambiente global.
source myenv/bin/activate # Substitua "myenv" pelo nome do seu ambiente virtual, se aplicável
- Execute o script
conversor_pdf_mobi.py
digitando o seguinte comando:
python conversor_pdf_mobi.py /caminho/para/seu/arquivo.pdf
Substitua /caminho/para/seu/arquivo.pdf
pelo caminho completo do arquivo PDF que você deseja converter.
- Aguarde o processo de conversão ser concluído. O arquivo MOBI resultante será salvo na pasta
converted_mobi/
.
Agora você pode transferir o arquivo MOBI para seu dispositivo Kindle ou usar um aplicativo de leitura de e-books compatíveis com o formato MOBI para ler o livro no seu dispositivo.
Nota: Certifique-se de que o Calibre esteja instalado e configurado corretamente em seu sistema, juntamente com suas dependências, para garantir que a conversão ocorra sem problemas.
Você pode automatizar o processo de conversão usando o script run.sh
. Certifique-se de dar permissão de execução ao script com o seguinte comando:
chmod +x run.sh
Depois, execute o script para converter um arquivo PDF em MOBI.
./run.sh
Você pode executar o aplicativo usando o arquivo executável gerado pelo PyInstaller. Isso permite que você execute o projeto em sistemas Windows e, em distribuições Linux como o Garuda Arch Linux, diretamente do arquivo .exe. O PyInstaller é uma ferramenta que empacota seu código Python em um executável independente.
Se você estiver usando o Garuda Arch Linux, siga estas etapas para executar o aplicativo:
- Navegue até o diretório
src/dist
do seu projeto:
cd /caminho/para/o/diretorio/do/projeto/src/dist
- Execute o arquivo executável:
Use o seguinte comando para executar o aplicativo:
./app
Substitua app
pelo nome real do arquivo executável gerado pelo PyInstaller para o seu projeto.
3. Acompanhe a Saída:
O aplicativo será executado, e qualquer saída ou mensagens relacionadas a ele serão exibidas no terminal. Verifique se o aplicativo está funcionando conforme o esperado.
O PyInstaller é uma ferramenta poderosa que permite empacotar seu código Python em um único arquivo executável, tornando-o mais fácil de distribuir e executar em diferentes sistemas operacionais, incluindo o Windows e várias distribuições Linux. Ele é especialmente útil quando você deseja compartilhar seu projeto com outros usuários, pois elimina a necessidade deles instalarem o Python ou outras dependências.
Ao criar um arquivo executável com o PyInstaller, certifique-se de que todas as bibliotecas usadas no projeto estejam listadas corretamente no arquivo requirements.txt
. Dessa forma, o PyInstaller pode incluí-las no executável, garantindo que todas as dependências sejam atendidas durante a execução.---
Esta seção aprimorada da documentação fornece informações detalhadas sobre como executar o aplicativo em Garuda Arch Linux usando o arquivo executável gerado pelo PyInstaller. Certifique-se de substituir /caminho/para/o/diretorio/do/projeto
pelo caminho real para o diretório do seu projeto.
Este script realiza todas as etapas, desde a criação e ativação do ambiente virtual até a execução do projeto.
Com estas adições, o `README.md` inclui instruções claras sobre como usar o projeto, incluindo a automação do processo com o script `run.sh`. Certifique-se de substituir `/caminho/para/seu/arquivo.pdf` pelo caminho real do arquivo PDF que deseja converter e `/caminho/para/seu/projeto/src` pelo caminho real do diretório do projeto.