Открыть список
Как стать автором
Обновить

Комментарии 8

А в две колонки текст разбивает корректно? С «правильной» нарезкой по страницам?

ну, это уже, скорее всего вопрос к wt и libharu

Попробуйте печать в PDF с помощью chromium-browser:


exec('chromium-browser --headless --disable-sync --disable-gpu --no-first-run --hide-scrollbars --enable-automation --password-store=basic'
        .' --run-all-compositor-stages-before-draw'
    . ' --window-size=1920,1080 --no-sandbox'
    .' --print-to-pdf='.escapeshellarg($pdfPath).' --no-margins'
    .' '.escapeshellarg('file://'.$htmlFile), $output, $exitcode);
Вооще да, раньше такое было принято пилить отдельно от процесса энжинкса и просто передавать запрос на соответствующий бекенд для процессинга. Да, не фильтр, но можно же сложить содержимое ответа в файл, а потом отдать его хедером в бекенд на той же машине. Может это всё уже старо как мир и энжинкс стал таки сервером приложений.

Я все таки не понял, что не так с wkhtmltopdf? Сишный демон зависает если процес больше минуты ждёт io? Тогда как нджинкс решает данную проблему? Тем что там готовый плагин компилится?)
Мы у себя как раз взяли wkhtmltopdf и сворганили на go обёртку микросервис для http api — https://github.com/opsway/documents работает как часы.

Мы у себя как раз взяли wkhtmltopdf и сворганили на go обёртку микросервис для http api — github.com/opsway/documents работает как часы.
Дак у вас используется обёртка над консольным wkhtmltopdf!
Т.е. при каждой генерации запускается новый процесс wkhtmltopdf.

К тому же, в nginx и так уже есть готовый плагин для запуска внешних программ, с помощью которого не составит труда запускать в том числе и консольный wkhtmltopdf.
Пока из опыта работы с wkhtmltopdf я столкнулся только с одной проблемой — при генерации протоколов с количеством страниц более 300 демон умирает на этапе установки нижних колонтитулов. Без колонтитулов нормально, формируется… но если их включить то он уже не может отработать.

Так-же есть проблема с формированием документа если в ячейске таблицы текста больше чем может вместиться в 1 станицу. В таком случае часть теста переходит на другую страницу и идет наложение на текст следующей ячейки.
Тогда надо, наверное, уже использовать latex, вот только я что-то не могу найти c-библиотеку для него: очень не хотелось бы просто запускать команду!
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.