Элемент 1) Вы кэшируете свои PDF-файлы на диск. Когда делается запрос на pdf, проверьте, был ли создан pdf (то есть имеется ли файл на диске), и если нет, сгенерируйте его. Затем отправьте pdf с помощью команды response.writefile
Элемент 2) Если вы пытаетесь напечатать отформатированный html в pdf, вам понадобится что-то, способное рендерить html. Существует несколько конвертеров html в pdf, но я не нашел их такими хорошими. Если вам не безразличен php, есть несколько хороших конвертеров, которые вы можете использовать. Joomla поддерживает html в pdf, хотя, возможно, это и не точное решение, но и хорошая отправная точка.