Skip to content

Repository files navigation

📁 Universal File Converter

A modern, fast, and user-friendly Universal File Converter built with Python and Streamlit.

Convert documents, images, PDFs, spreadsheets, and structured data files from one simple interface. The application supports batch conversion, file preview, metadata extraction, and ZIP downloads.


✨ Features

  • 📄 Document Conversion

    • PDF → DOCX
    • DOCX → PDF
    • TXT → PDF
  • 📄 PDF Tools

    • Merge Multiple PDF Files
  • 🖼 Image Conversion

    • JPG ↔ PNG
    • JPG ↔ WEBP
    • PNG ↔ WEBP
    • BMP ↔ PNG
    • TIFF ↔ PNG
    • Images → PDF
  • 📊 Spreadsheet Conversion

    • CSV ↔ XLSX
  • 🗂 Data Conversion

    • JSON → CSV
    • CSV → JSON
    • XML → JSON
  • 👀 File Preview

    • Images
    • PDF (First Page)
    • DOCX
    • TXT
    • CSV
    • XLSX
  • 📋 Metadata Extraction

    • File Information
    • Image Properties
    • PDF Details
    • Spreadsheet Information
    • JSON & XML Statistics
  • 📦 Batch Conversion

  • 📥 Individual File Download

  • 📁 ZIP Download

  • 📊 Conversion Dashboard

  • 🧹 Automatic Temporary File Cleanup

  • ⚡ Fast Processing


📂 Supported Formats

Category Input Output
PDF PDF DOCX
Document DOCX PDF
Document TXT PDF
Image JPG PNG, WEBP, PDF
Image PNG JPG, WEBP, PDF
Image WEBP JPG, PNG, PDF
Image BMP PNG, PDF
Image TIFF PNG, PDF
Spreadsheet CSV XLSX, JSON
Spreadsheet XLSX CSV
Data JSON CSV
Data XML JSON

🛠 Built With

  • Python 3.12+
  • Streamlit
  • Pillow
  • PyMuPDF
  • pypdf
  • pdf2docx
  • python-docx
  • reportlab
  • pandas
  • openpyxl
  • img2pdf
  • xmltodict
  • lxml

📁 Project Structure

Universal_File_Converter/
│
├── app.py
├── config.py
├── metadata.py
├── preview.py
├── utils.py
├── requirements.txt
├── README.md
├── .gitignore
│
├── converters/
│   ├── __init__.py
│   ├── base_converter.py
│   ├── image_converter.py
│   ├── pdf_converter.py
│   ├── document_converter.py
│   ├── spreadsheet_converter.py
│   └── data_converter.py
│
├── services/
│   ├── __init__.py
│   └── conversion_manager.py
│
├── pages/
│   ├── Converter.py
│   ├── About.py
│   └── Home.py
│
├── temp/
├── output/
└── samples/

🚀 Installation

Clone the repository:

git clone https://github.com/your-username/universal-file-converter.git

Go to the project directory:

cd universal-file-converter

Create a virtual environment:

Windows

python -m venv venv
venv\Scripts\activate

Linux / macOS

python3 -m venv venv
source venv/bin/activate

Install dependencies:

pip install -r requirements.txt

▶️ Run the Application

streamlit run app.py

The application will open in your browser.


📖 How to Use

File Conversion

  1. Open the Converter page.
  2. Upload one or more supported files.
  3. Choose the output format.
  4. Click Convert Files.
  5. Preview the converted result.
  6. Download individual files or download everything as a ZIP archive.

Merge PDF

  1. Open the Merge PDF page.
  2. Upload two or more PDF files.
  3. Upload the PDF files in the order you want them to be merged.
  4. Click Merge PDF.
  5. Download the merged PDF.

📊 Key Features

  • Automatic file type detection
  • Multiple file upload
  • Batch conversion
  • Preview before conversion
  • Metadata viewer
  • Conversion progress indicator
  • Download individual files
  • Download ZIP archive
  • Automatic cleanup of temporary files
  • Modern Streamlit interface

📌 Highlights

  • Object-Oriented Design
  • Modular Architecture
  • Easy to Extend
  • Cross-Platform
  • Production Ready
  • Clean Code Structure

📄 License

This project is licensed under the MIT License.


👨‍💻 Developer

S. S. Mhatre


⭐ Support

If you found this project useful, consider giving it a ⭐ Star on GitHub.


About

A modern file converter built with Python and Streamlit supporting documents, images, PDFs, spreadsheets, and structured data.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages