ttmp32gme

User Guide

  • Getting Started
  • Installation
  • Usage Guide
  • Printing
  • Data Migration
  • Troubleshooting

Developer Guide

  • Development Guide
  • Building Executables
  • API Reference
    • Modules
      • ttmp32gme Module
      • db_handler Module
      • tttool_handler Module
      • print_handler Module
        • Key Functions
        • Layout Presets
        • Usage
      • file_handler Module
    • HTTP API Endpoints
    • Usage Examples
    • Data Models
  • Contributing
  • SQL Injection Protection
ttmp32gme
  • API Reference
  • print_handler Module
  • View page source

print_handler Module

Print layout generation for ttmp32gme.

Key Functions

create_print_layout(album_ids, layout_config, db_handler): Generate HTML print layout

format_tracks(album, oid_map, db_handler): Format track list with OID codes

format_print_button(label, oid_code, size, db_handler): Create control button with OID

create_pdf(html_content, output_path, config): Create PDF (platform-specific)

Layout Presets

  • List: Full details, 1-2 albums/page

  • Tiles: Compact grid, 6-12 albums/page

  • CD Booklet: Standard CD case dimensions

Usage

from ttmp32gme.print_handler import create_print_layout

config = {
    "preset": "list",
    "columns": 2,
    "show_cover": True,
    "dpi": 1200,
    "pixels_per_dot": 2
}

html = create_print_layout([123, 456], config, db)

Print handling module for ttmp32gme - creates print layouts.

ttmp32gme.print_handler.is_running_in_container()[source]

Check if the application is running inside a container (Docker/Podman).

Return type:

bool

Returns:

True if running in a container, False otherwise

ttmp32gme.print_handler.format_tracks(album, oid_map, db_handler)[source]

Format track list with OID codes for printing.

Parameters:
  • album (Dict[str, Any]) – Album dictionary containing track information

  • oid_map (Dict[str, Dict[str, int]]) – Mapping of script names to OID codes (e.g., {“t0”: {“code”: 2663}})

  • db_handler (DBHandler) – Database handler instance for accessing album data

Return type:

str

Returns:

HTML content for track list with embedded OID images

ttmp32gme.print_handler.format_controls(oid_map, db_handler)[source]

Format playback controls with OID codes.

Parameters:
  • oid_map (Dict[str, Dict[str, int]]) – Mapping of script names to OID codes (e.g., {“play”: {“code”: 3947}})

  • db_handler (DBHandler) – Database handler instance for creating OID images

Return type:

str

Returns:

HTML content for playback controls (prev, play, stop, next buttons)

ttmp32gme.print_handler.format_track_control(track_no, oid_map, db_handler)[source]

Format a single track control button.

Parameters:
  • track_no (int) – Track number (1-indexed)

  • oid_map (Dict[str, Dict[str, int]]) – Mapping of script names to OID codes (e.g., {“t0”: {“code”: 2663}})

  • db_handler (DBHandler) – Database handler instance for creating OID images

Return type:

str

Returns:

HTML content for track control button with embedded OID image

ttmp32gme.print_handler.format_main_oid(oid, db_handler)[source]

Format main OID image for an album.

Parameters:
  • oid (int) – Album OID number

  • db_handler (DBHandler) – Database handler instance for creating OID images

Return type:

str

Returns:

HTML img tag with embedded OID image

ttmp32gme.print_handler.format_cover(album)[source]

Format cover image for an album.

Parameters:

album (Dict[str, Any]) – Album dictionary containing picture_filename and oid

Return type:

str

Returns:

HTML img tag for cover image, or empty string if no cover exists

ttmp32gme.print_handler.create_print_layout(oids, template, config, db_handler)[source]

Create print layout for selected albums.

Parameters:
  • oids (List[int]) – List of album OIDs to include in print layout

  • template (Any) – Flask template object for rendering (unused, kept for compatibility)

  • config (Dict[str, Any]) – Configuration dictionary with print settings

  • db_handler (DBHandler) – Database handler instance for accessing album data

Return type:

str

Returns:

HTML content for complete print layout including all albums and controls

ttmp32gme.print_handler.create_pdf(port, chromium_names=('chromium', 'chromium-browser', 'google-chrome', 'chrome'))[source]

Create PDF from print layout using Chromium headless.

Parameters:

port (int) – Server port number for accessing the print page via HTTP

Return type:

Optional[Path]

Returns:

Path to created temporary PDF file, or None if PDF creation failed

ttmp32gme.print_handler.format_print_button()[source]

Format the print button HTML based on platform and chromium availability.

Return type:

str

Returns:

HTML string for print/PDF button(s) appropriate for the current platform

ttmp32gme.print_handler.generate_pdf_with_threading(port, timeout=60)[source]

Generate PDF using threading to avoid server deadlock.

This function generates a PDF in a separate thread to avoid blocking the server when Chromium needs to make a request back to the server to render the page.

Parameters:
  • port (int) – Server port number for accessing the print page via HTTP

  • timeout (int) – Maximum time in seconds to wait for PDF generation (default: 60)

Returns:

  • ‘success’: Boolean indicating if PDF generation succeeded

  • ’file’: Path to the generated PDF file (if successful)

  • ’error’: Error message (if failed)

  • ’timeout’: Boolean indicating if operation timed out

Return type:

Dictionary with the following keys

Previous Next

© Copyright 2025, ttmp32gme contributors.

Built with Sphinx using a theme provided by Read the Docs.