Skip to content

Dking08/DasMDF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DasMDF - Markdown to PDF Converter

DasMDF is a modern desktop GUI tool that converts Markdown (.md) files into beautifully formatted PDF documents using multiple rendering engines. Built using PyQt6 (with a legacy version in CustomTkinter), DasMDF is fast, flexible, and ready for open-source contribution.


⬇️ Download

A ready-to-use Windows executable for the PyQt6 version is available—no setup required!
The .exe includes all dependencies, including wkhtmltopdf and Playwright (note: this increases the file size).

Just download, extract, and run the executable.


🧠 Why DasMDF?

  • Convert Markdown to PDF in a click
  • Supports multiple rendering engines
  • PyQt6 UI for rich, responsive user experience
  • Code highlighting, LaTeX, emoji & image rendering support (engine-dependent)
  • Simple, elegant design for daily use

📁 Project Structure

DasMDF/
├── pyqt6_version/
│   ├── dasmdf.py
│   ├── requirements.txt
│   └── icon/
│       └── icon.png
├── ctk\_version/   ← Legacy version (CustomTkinter)
│   ├── dasmdf.py
│   └── requirements.txt
├── assets/
│   └── \*.css
├── LICENSE
└── README.md


🖥️ Current Version: PyQt6

The PyQt6 version is the primary and actively developed version of DasMDF.
We transitioned from CustomTkinter because:

  • CTk lacks proper emoji rendering in text boxes
  • PyQt6 provides more flexibility, better widget control, and cross-platform rendering consistency

To run:

cd pyqt6_version
pip install -r requirements.txt
python dasmdf.py

🧪 Legacy Version: CustomTkinter

You can still use the legacy CTk GUI version (not actively maintained):

cd ctk_version
pip install -r requirements.txt
python dasmdf.py

🧠 Rendering Engines

Engine Type Quality Speed Supports
Playwright Headless browser ⭐ Best ⚡ Fastest Full CSS, LaTeX (MathJax), code, images, emojis
WeasyPrint Pure Python ⭐ Medium 🐢 Slowest CSS, code highlighting, limited image/emoji/LaTeX
wkhtmltopdf Native executable ⭐ Low 🚀 Faster Basic CSS, poor LaTeX, partial image, no emoji support

📦 Installation

1. Install wkhtmltopdf

  • Windows: Download and add to PATH

  • Linux:

    sudo apt install wkhtmltopdf

2. Install Python dependencies

Use the relevant version's requirements file:

# For PyQt6 version
cd pyqt6_version
pip install -r requirements.txt

# For CTk version (legacy)
cd ctk_version
pip install -r requirements.txt

3. Install Playwright Browsers (shared)

playwright install

📌 Roadmap

  • Switch to PyQt6
  • ✅ Version-specific requirements.txt
  • Executable build for PyQt6 (with all dependencies)
  • 🔜 Markdown live preview
  • 🔜 Settings and export options
  • 🔜 CLI support (optional)

🤝 Contributing

We welcome pull requests and issue reports! Please follow PEP8 guidelines and keep your commits clean and descriptive.


📜 License

This project is licensed under the MIT License. See the LICENSE file for details.


🙏 Acknowledgements