Am besten geht das mit TCPDF. TCPDF kann aus HTML ein PDF erstellen und das erleichtert die Sache sehr. Natürlich kann TCPDF nicht alle HTML-Tags und Attribute, aber da man in PHP das HTML selber erstellen kann, ist das leicht zu berücksichtigen.
Wenn zusätzlich PDF-Dateien eingelesen werden müssen, um neue Seiten einzubinden, oder PDF-Dateien zu mergen, dann kann zusätzlich PDI verwendet werden. PDI kann PDF-Dateien einlesen. Das Zusammenspiel von PDI mit TCPDF ist problemlos. Wenn TCPDF inkludiert wird, bevor man ein PDI-Objekt instanziert, dann ist PDI automatisch von TCPDF vererbt.
http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf
http://www.setasign.de/products/pdf-php-solutions/fpdi/