Skip to content

Versatile Python PDF toolkit with CLI and Streamlit web interface for compression, PDF/Word conversion, and merging documents using Ghostscript and LibreOffice

Notifications You must be signed in to change notification settings

saadyaq/rapidoPDF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 

Repository files navigation

🚀 RapidoPDF

Un outil Python polyvalent pour le traitement de fichiers PDF avec une interface en ligne de commande et une application web Streamlit.

✨ Fonctionnalités

  • 📦 Compression PDF : Réduisez la taille de vos fichiers PDF avec différents niveaux de qualité
  • 📄 Conversion PDF → Word : Convertissez vos PDF en documents Word (.docx)
  • 📄 Conversion Word → PDF : Transformez vos documents Word en PDF
  • 🔗 Fusion de PDF : Combinez plusieurs fichiers PDF en un seul document
  • 🌐 Interface web : Application Streamlit pour une utilisation simple via navigateur
  • 💻 Interface CLI : Utilisation en ligne de commande pour l'automatisation

📋 Prérequis

Logiciels requis

  • Python 3.7+
  • Ghostscript (pour la compression PDF)
  • LibreOffice (pour la conversion Word → PDF)

Installation des dépendances système

Ubuntu/Debian :

sudo apt-get update
sudo apt-get install ghostscript libreoffice

macOS :

brew install ghostscript libreoffice

Windows :

🚀 Installation

  1. Clonez le repository :
git clone https://github.com/votre-username/rapidoPDF.git
cd rapidoPDF
  1. Créez un environnement virtuel :
python -m venv venv
source venv/bin/activate  # Linux/macOS
# ou
venv\Scripts\activate     # Windows
  1. Installez les dépendances Python :
pip install -r requirements.txt

💡 Utilisation

Interface Web (Streamlit)

Lancez l'application web :

streamlit run webapp.py

L'application sera accessible à l'adresse http://localhost:8501

Interface en Ligne de Commande

python app.py

Suivez les instructions interactives pour :

  1. Compresser un PDF
  2. Convertir PDF en Word
  3. Convertir Word en PDF
  4. Fusionner plusieurs PDF

📁 Structure du Projet

rapidoPDF/
├── app.py              # Interface CLI principale
├── webapp.py           # Interface web Streamlit
├── requirements.txt    # Dépendances Python
├── modules/
│   ├── compress.py     # Compression PDF avec Ghostscript
│   ├── pdf_to_word.py  # Conversion PDF → Word
│   ├── word_to_pdf.py  # Conversion Word → PDF
│   └── merge.py        # Fusion de fichiers PDF
├── uploads/            # Dossier temporaire pour les fichiers uploadés
└── outputs/            # Dossier de sortie pour les fichiers traités

⚙️ Configuration

Niveaux de Compression PDF

Niveau Option Description Utilisation
1 /screen Qualité écran (très léger) Affichage web, faible qualité
2 /ebook Qualité ebook (léger) Lecture numérique
3 /printer Qualité imprimante (bonne) Impression standard
4 /prepress Qualité prépresse (très bonne) Impression professionnelle
5 /default Qualité par défaut Usage général

🛠️ Dépendances

  • pikepdf : Manipulation avancée des PDF
  • PyPDF2 : Fusion et manipulation de base des PDF
  • pdf2docx : Conversion PDF vers Word
  • python-docx : Manipulation de documents Word
  • streamlit : Interface web moderne

📝 Exemples d'utilisation

Compression d'un PDF

from modules.compress import compress_pdf

compress_pdf(
    input_path="document.pdf",
    output_path="document_compressed.pdf",
    compression_level="/ebook"
)

Fusion de PDF

from modules.merge import merge_pdfs

merge_pdfs(
    input_paths=["doc1.pdf", "doc2.pdf", "doc3.pdf"],
    output_path="document_fusionne.pdf"
)

🚨 Résolution des Problèmes

Erreur Ghostscript

  • Vérifiez que Ghostscript est installé et accessible dans le PATH
  • Sous Windows, ajoutez le répertoire Ghostscript au PATH système

Erreur LibreOffice

  • Assurez-vous que LibreOffice est installé
  • Vérifiez que la commande libreoffice est accessible en ligne de commande

Problèmes de permissions

  • Vérifiez que les dossiers uploads/ et outputs/ sont accessibles en écriture
  • Sous Linux/macOS, utilisez chmod si nécessaire

📄 Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.

🤝 Contribution

Les contributions sont les bienvenues ! Pour contribuer :

  1. Forkez le projet
  2. Créez une branche feature (git checkout -b feature/AmazingFeature)
  3. Committez vos changements (git commit -m 'Add some AmazingFeature')
  4. Poussez vers la branche (git push origin feature/AmazingFeature)
  5. Ouvrez une Pull Request

📞 Support

Si vous rencontrez des problèmes ou avez des questions :

  • Ouvrez une issue sur GitHub
  • Consultez la documentation des dépendances utilisées

🔄 Changelog

Version 1.0.0

  • Interface CLI interactive
  • Interface web Streamlit
  • Compression PDF avec Ghostscript
  • Conversion PDF ↔ Word
  • Fusion de fichiers PDF

About

Versatile Python PDF toolkit with CLI and Streamlit web interface for compression, PDF/Word conversion, and merging documents using Ghostscript and LibreOffice

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages