wkhtmltopdf vs fpdf и вопросы, касающиеся использования и производительности (HTML в PDF) - PullRequest
5 голосов
/ 25 сентября 2011

Мне не удалось найти ответы на мои вопросы в нескольких сообщениях на одну и ту же тему, поэтому я буду задавать здесь более конкретные вопросы.

Мои вопросы касаются wkhtmltopdf и fpdf.Мне нужен один из них для создания 1-страничных счетов-фактур (действительно базового дизайна) и 1-страничных отчетов (также базового дизайна) для очень маленьких PDF-документов.

Я читал, что большинство людей рекомендуют wkhtmltopdf из-за его производительности, нодля небольших документов на 1 страницу действительно ли это имеет значение по сравнению с fpdf?Это действительно меньше памяти?Быстрее?

Я знаю, что это глупый вопрос, но мне также нужно знать, можно ли выполнять wkhtmltopdf несколько раз одновременно.Я имею в виду, если на моем сайте есть 1000 пользователей, пытающихся одновременно сохранить свой счет в формате PDF?Есть ли предел, как это работает?Я знаю, что fpdf - это класс php, поэтому мне не нужно об этом «беспокоиться» (мне нужна только правильная конфигурация php.ini).

Что бы вы предложили?Для небольших PDF-документов, но с высокой производительностью, для одновременной обработки большого количества запросов.

Есть ли другие варианты?

Спасибо за помощь!

1 Ответ

9 голосов
/ 26 сентября 2011

Короткий ответ - да - вы можете создавать несколько экземпляров wkhtmltopdf одновременно, каждый из которых конвертирует свою HTML-страницу в PDF.Однако wkhtmltopdf работает как процесс операционной системы, что означает, что если 1000 пользователей одновременно просматривают свои счета, 1000 серверов wkhtmltopdf будут порождаться на сервере, что, вероятно, не то, что вам нужно.

С другой стороныстороны, FPDF работает как часть процесса веб-сервера во время выполнения PHP и не будет иметь этого ограничения.Если вы создаете небольшой или даже большой счет-фактуру, я предлагаю использовать FPDF, поскольку довольно просто создать счет-фактуру с использованием FPDF.Мало того, что вы будете иметь большой контроль над макетом страницы PDF, вы также сэкономите время при обслуживании / обновлении позже.

Одна из проблем, с которой я столкнулся при работе с wkhtmltopdf, - разрыв страницы.Wkhtmltopdf не будет ломать ваши страницы, как вы могли ожидать.Например, строка текста может быть разделена между двумя страницами - верхняя часть строки текста, появляющаяся в конце одной страницы, и нижняя часть, появляющаяся в начале следующей страницы.Чтобы избежать такого поведения, вы должны разумно устанавливать атрибуты css page-break-after или page-break-before на ваших html-страницах, что иногда может быть затруднительно, поскольку вы не уверены, где страница будет разрываться.

...