Попробуйте сделать все возможное в статическом HTML-размере. Укажите размеры пикселей для всех ячеек. Я думаю, что макет - это то, что занимает больше всего времени, пытаясь разместить таблицу на страницах PDF Или попробуйте разбить код на 3000 строк на отдельные таблицы, по одной на каждую страницу pdf, вместо одной массивной, которую библиотека должна выяснить, где разбивать.
Сможете ли вы запустить профилировщик в библиотеке? Чтобы увидеть, на какие методы он тратит больше всего времени.