The Docker build is failing because the package libgdk-pixbuf2.0-0 has no installation candidate in the python:3.11-slim base image.
The system already has a ReportLab fallback that generates functional PDFs without system dependencies.
Pros:
- β Works immediately
- β No system dependencies required
- β Faster generation
- β Company branding included
Cons:
β οΈ Basic styling onlyβ οΈ No CSS supportβ οΈ Limited layout control
How to use:
- The system automatically falls back to ReportLab when WeasyPrint fails
- You'll get a warning message but PDFs will still be generated
- Company branding and invoice information will be included
# Use the WeasyPrint-optimized Dockerfile
docker-compose -f docker-compose.weasyprint.yml up --buildThe current Dockerfile has been updated to use python:3.11-slim-bullseye which has better package availability.
docker-compose down
docker-compose build --no-cache
docker-compose upDockerfile.weasyprint- Optimized for WeasyPrintdocker-compose.weasyprint.yml- Uses the optimized Dockerfiledocker/test-packages.py- Tests system package availabilitydocker/test-pdf-generation.py- Tests PDF generation capabilities
Dockerfile- Now usespython:3.11-slim-bullseyedocker/start-new.sh- Includes package and PDF testingapp/utils/pdf_generator_fallback.py- ReportLab fallback generator
# Just start the existing system
docker-compose up
# PDFs will work with ReportLab fallback# Use the WeasyPrint-optimized setup
docker-compose -f docker-compose.weasyprint.yml up --build# Update and rebuild current setup
docker-compose down
docker-compose build --no-cache
docker-compose updocker exec -it your-container-name python /app/docker/test-packages.pydocker exec -it your-container-name python /app/docker/test-pdf-generation.py- Create or view an invoice
- Click "Export PDF"
- Check if it works and what quality you get
- β PDFs generate successfully
- β Company branding included
- β Invoice information complete
β οΈ Basic styling onlyβ οΈ Warning message displayed
- β High-quality PDFs
- β Professional styling
- β CSS support
- β Company logos (if configured)
- β Print-ready output
- Check your Debian version:
cat /etc/debian_version - Verify package names:
apt-cache search libgdk-pixbuf - Use the alternative Dockerfile:
Dockerfile.weasyprint
- Check container logs:
docker-compose logs app - Run package test:
python /app/docker/test-packages.py - Run PDF test:
python /app/docker/test-pdf-generation.py
This is expected with ReportLab fallback. To get high-quality PDFs:
- Use
Dockerfile.weasyprint - Or fix system dependencies in current setup
- Use ReportLab fallback (already working)
- Configure company branding in Admin β Settings
- Generate PDFs with basic styling
- Use
docker-compose.weasyprint.yml - Rebuild with WeasyPrint support
- Enjoy professional-grade PDFs
- Start with ReportLab fallback
- Gradually fix WeasyPrint dependencies
- Test both generators
PDF_GENERATION_TROUBLESHOOTING.md- Detailed troubleshootingENHANCED_INVOICE_SYSTEM_README.md- System documentation- Test scripts in
docker/directory
The good news: PDF generation is already working with ReportLab fallback!
The better news: WeasyPrint can be fixed for high-quality output.
Choose your path:
- π Quick Start: Use ReportLab fallback (works now)
- π¨ High Quality: Fix WeasyPrint dependencies
- π Hybrid: Use both with automatic fallback
Your invoice system is fully functional with company branding, and PDFs will generate regardless of which path you choose!