The ReportLab Toolkit is a library for programatically creating documents in PDF format. It can quickly and easily create or automate complex, data-driven documents. It features a real document layout engine, flowable objects (such as paragraphs, headlines, tables, images, and graphics), support for embedded Type-1 or TTF fonts, support for Asian, Hebrew, and Arabic characters, support for bitmap images in any popular format, support for vector graphics, a library of reusable primitive shapes, and an extensible widget library. It includes simple demos and more complex tools. It allows for any data sources.