Работает еще немного быстрее (325 с -> 310 стало, 18,1 с-> 17,4 с, 8,5 с -> 6,1 с стало) и теперь количество страниц в выходном файле строго соответствует количеству страниц в файле с переменными данными. Ну и код упростился. Просто пришла идея в голову.
Могут возникать предупреждения, это ошибки с закладками, их можно игнорировать, это известная бага cpdf,