Невозможно сгенерировать более 20 страниц в wkhtmltopdf (приблизительно)

Я пытаюсь сгенерировать pdf с 30-35 страницами, используя wkhtmltopdf, но после 20 страниц (иногда 21/22) остаются пустые страницы. Чтобы подтвердить это, я попытался сгенерировать одну и ту же страницу 35 раз, используя цикл (обратите внимание, что в html-файле нет ошибки).

Я использую NReco.PdfGenerator (С#).


person Anand    schedule 23.08.2017    source источник
comment
Я правильно понимаю, что вы указываете 30-35 URL-адресов в качестве входных данных (методом GeneratePdfFromFiles)?   -  person Vitaliy Fedorchenko    schedule 23.08.2017
comment
Пожалуйста, прочитайте При каких обстоятельствах я могу добавить «срочно» или другие подобные фразы к моему вопросу, чтобы получить более быстрые ответы? - Подводя итог, можно сказать, что это не идеальный способ обращения к волонтерам и, вероятно, контрпродуктивно для получения ответов. Пожалуйста, воздержитесь от добавления этого к своим вопросам.   -  person halfer    schedule 23.08.2017
comment
Спасибо за ваше предложение   -  person Anand    schedule 22.06.2018


Ответы (1)


Используйте профилировщик JavaScript (chrome) и максимально оптимизируйте свой код, если wkhtmltopdf.exe выдает исключение тайм-аута. После выполнения рефакторинга на основе описанного выше подхода мы также добавили параметр --no-stop-slow-scripts вместе с 3-минутным тайм-аутом в исполняемый файл wkhtmpltopdf. И теперь я могу сгенерировать более 80 страниц :)

person Anand    schedule 22.02.2018
comment
Если вы используете angular 2+, это может помочь оптимизировать ваш код для повышения производительности для pdf- * Избегайте привязок методов в шаблоне, это выполняется для каждого события в представлении и занимает много времени. Рекомендуется привязывать переменную к шаблону, а не к методу. * Мы можем обновить стратегию обнаружения угловых изменений, добавив приведенные ниже строки кода для каждого конкретного компонента PDF. @Component({ // ... changeDetection: ChangeDetectionStrategy.OnPush }) и т. д. - person Anand; 22.02.2018