Создайте PDF из раздела php-страницы после рендеринга в HTML и CSS и учтите pdf-разрывы страниц

0

Система, над которой я работаю, имеет в ней анкеты, а затем показывает ответы администратору в хорошем отчете на экране. Мне нужно создать функциональность, которая превращает отчет на экране в pdf, подобно тому, как браузер генерирует PDF-страницу, когда вы выбираете печать. Хотя мне нужно только превратить раздел страницы в pdf. И было бы идеально, чтобы иметь возможность изменять HTML, чтобы разрывы страниц PDF не мешали представлению отчета.

Вы можете загрузить pdf файл, как выглядит отчет, сгенерированный функциями браузера. Это всего лишь пример, мне нужен pdf файл, который будет создан ссылкой или кнопкой, и не включает всю страницу (верхняя часть в этом случае).

Я пробовал некоторые php HTML для генераторов pdf, но это сложно, потому что HTML динамически генерируется, поэтому я не уверен, как отправить весь HTML-документ после отображения на страницу, которая создает PDF файл.

Чтобы преодолеть разрывы страниц, я рассмотрел использование javascript или jquery для чтения высоты div каждого вопроса в отчете, а затем написал простой скрипт, чтобы вычислить, будет ли следующий div поместиться на странице, и если не добавить маржу поверх этого div, чтобы он начинался с новой страницы.

Какое программное обеспечение можно использовать для создания pdf файла, учитывая эти требования? Либо php, либо javascript. Цените помощь.

Теги:
pdf
pdf-generation
html-to-pdf

2 ответа

1
Лучший ответ

Вы считали Snappy для PHP? Он использует wkhtmltopdf за шторами для преобразования любого HTML-документа в PDF.

Мы используем его, и он отлично работает.

https://github.com/KnpLabs/snappy

  • 0
    Это сработало отлично. Спасибо!
1

Вы можете попробовать mpdf и использовать функцию page-break-inside: avoid свойства, которое на самом деле является свойством CSS. Я не использовал это, но это может быть то, что вы ищете.

Похоже, вы можете добавить это свойство в теги <div> и <table> (поддерживаемый mPDF CSS).

  • 0
    Это выглядит хорошо. Я собираюсь попробовать.
  • 0
    Это работало, но были проблемы с вложенными таблицами и селекторами потомков css.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню