ImageTyler tiles a source image across a PDF page for print-ready output. Entirely vibe-coded, but reviewed and tested by humans. It supports mixed-unit dimensions, padding, and cutting guides.
Install as a standalone tool with uv:
uv tool install imagetylerAdd it as a dependency in your project:
uv add imagetylerBasic usage:
imagetyler photo.jpg --size 35x45mm --paper A4ImageTyler accepts mixed-unit dimensions and inherits missing units from either side of the WxH expression. These all work:
imagetyler photo.jpg --size 35x45mm --paper 210x297mm
imagetyler photo.jpg --size 35mmx45 --paper Letter
imagetyler photo.jpg --padding 2mm --landscape --borderUseful flags include --padding for spacing between tiles, --landscape for rotating the target page, and --border with --border-width for cutting guides.
Use --list-units to inspect supported measurement units and --list-paper to list recognized paper aliases.
from pathlib import Path
from imagetyler import generate_tiled_pdf
output = generate_tiled_pdf(
image_path=Path("photo.jpg"),
output_pdf=Path("tiled_output.pdf"),
paper="A4",
image_size="35x45mm",
padding="2mm",
)
print(output)ImageTyler is distributed under the BSD-3-Clause license.