Как мне создать большой PDF, полу быстро

Мне нужно создать большой PDF, а точнее 2480 страниц. В настоящее время я использую indesign, и в то время как вывод именно то, что я хочу. Я бы предпочел не участвовать в процессе создания документа. Indesign требуется 31 минут, чтобы выполнить слияние данных, сгенерировать pdf, сохранить pdf и сохранить файл pdf.indd. (Мне действительно не нужен файл pdf.indd, но я бы предпочел не воссоздавать слияние данных, если что-то случится с pdf)

Я надеюсь на php или подобное решение. В настоящее время мои данные хранятся в MySQL. Большая часть PDF - это статический текст с 19 динамически управляемыми текстовыми полями. На PDF есть одно изображение, 75x100px @ 72dpi.

Вывод должен быть точным, PDF-файл распечатывается и разрезается пополам на 4,25 дюйма.

Я пробовал TCPDF, хотя он быстро генерирует до 50 страниц, после этого он скорее умрет, чем выдаст мне вывод. Я также играл с mPDF и обнаружил, что это не так дружелюбно. Я также рассмотрел создание множества маленьких файлов и использование некоторой утилиты для объединения меньших PDF-файлов в один большой PDF-файл. Хотя это похоже на поездку вокруг горы.

Любые мысли будут полезны.

2 ответа

Когда дело касается огромного количества страниц в PDF, LaTeX всегда лучший ответ. Ничто не может справиться с генерацией огромного PDF так быстро, точно и элегантно, как LaTeX. Проверьте этот вопрос, чтобы увидеть, как получить ваши данные из базы данных.

Конечно, вы можете создавать документы напрямую с помощью PHP, но это может быть сложно. Одним из методов является использование одного из различных классов PDF для создания документа, как вы уже нашли. Другой способ - создавать изображения (используя ImageMagic, GD и т. Д.) И конвертировать их в PDF. (Этот метод менее эффективен, поскольку вы создаете растровую графику, превращая всю страницу PDF в один гигантский рисунок.)

Тем не менее, я думаю, что вы должны рассмотреть простой сценарий InDesign. InDesign имеет возможность считывать данные через XML и создавать документ. Таким образом, дизайн вашего документа не зависит от ваших возможностей программирования, и вы все равно можете иметь возможность программно создавать документ.

Мы рекомендуем, когда вам нужно создать PDF-файл большого размера, тогда вам следует использовать wkhtmltopdf. Это не библиотека PHP, а сборка на Perl. Вам нужно установить это на свой сервер, после чего вы можете написать код для генерации PDF. Мы пробовали PHP, но предполагаем, что это будет работать с другими языками программирования, а также с Ruby,Net, Java или PHP Framework Laravel и т. Д.

wkhtmltopdf - это инструменты командной строки с открытым исходным кодом (LGPLv3) для рендеринга HTML в PDF. Wkhtmltopdf очень быстро сравнивается со всеми другими PHP-библиотеками для PDF, такими как dompdf, TCPDF, FPDF и т. Д. В нашем случае мы создали 641-страничный PDF за 3-4 секунды.

Установите wkhtmltopdf на сервер

Шаг 1 - Для установки wkhtmltopdf нам нужен доступ по SSH. Secure Shell (SSH) - это командный интерфейс на основе UNIX. Если у вас нет доступа, попросите хостинг-провайдера включить его для вас.

Шаг 2 - Откройте инструмент командной строки, такой как git bash или CMD (инструмент командной строки Windows), и выполните следующие шаги

ssh -p port-number username@ip.ad.re.ss 

Это команда спросит пароль и введите ваш пароль

Шаг 3 - Загрузите последнюю версию wkhtmtopdf с http://wkhtmltopdf.org/downloads.html и замените указанный ниже URL-адрес на последний URL-адрес.

wget http://download.gna.org/wkhtmltopdf/0.12/0.12.3/wkhtmltox-0.12.3_linux-generic-amd64.tar.xz
tar -xvf wkhtmltox-0.12.3_linux-generic-amd64.tar.xz 

Теперь установка завершена, вам не нужно перемещать папку wkhtmltopdf в / usr / bin /

Протестируйте с помощью приведенной ниже команды, чтобы сгенерировать example.pdf./wkhtmltopdf http://www.example.com/example.pdf

Дополнительную информацию вы можете прочитать по адресу: https://www.techuz.com/blog/generate-large-pdf-file-php/

Другие вопросы по тегам