FPDF
esa es mi recomendacion.
aqui el manual
http://www.fpdf.org/es/doc/index.php
todo lo que describes lo puedes hacer con FPDF solo necesitas experiencia ya que el punto 3 y 4 se hace extendiendo la clase y agregando tu el dinamismo de funcionamiento.