Squeak.ru - шаблоны программирования

Symfony2: Как создать PDF из html, содержащий таблицу с динамическим содержимым (ширина/высота)?

Я думаю, что этот вопрос уже задавался и на него уже был дан ответ. Ни один из них не работал у меня.

У меня есть страница с таблицей, и эта таблица имеет динамически загружаемые данные. Размер каждой строки рассчитывается динамически. Так что я не могу это контролировать.

В каждой ячейке может быть 100 букв, может быть 10000, а может и не быть ни одной.

До сих пор я пробовал некоторые инструменты PDF. Я пробовал FPDF с использованием php в контроллере, я также пробовал JSpdf для создания PDF путем рендеринга html-представления. В FPDF я должен объявить ячейку с width и height. Как я могу определить ширину или высоту ячейки, размер которой мне неизвестен.

$this->Cell(30,10,'Title',1,0,'C');

jsPDF может немного отображать html, но это бета-версия, не может отображать css. Он также использует ширину и высоту.

Есть ли способ добиться функциональности, при которой pdf будет создаваться с HEADER на каждой странице, и каждая страница содержит таблицу с динамическими данными, размер которой для каждой ячейки мне совершенно неизвестен? Буквы должны быть скорректированы в ячейках таблицы или ячейка таблицы должна быть скорректирована в соответствии с буквами.

Если есть инструмент, который будет работать именно так, как я хотел, можно ли будет интегрировать его в фреймворк Symfony2? Вы также можете предложить мне инструмент с Jquery, если он есть...

Изменить: config.php для knpsnappy (не работает в Windows)

knp_snappy:
  pdf:
    enabled:    true
    binary:     C:/wkhtmltopdf/bin/wkhtmltopdf
    options:    []
  image:
    enabled:    true
    binary:     C:/wkhtmltopdf/bin/wkhtmltoimage
    options:    []

Ответы:


1

KnpSnappyBundle:

Вы можете использовать KnpSnappyBundle для создания PDF-файла.


Пакет интегрирует snappy в symfony.

snappy — это оболочка для wkhtmltopdf, который использует механизм рендеринга Webkit.

27.02.2014
  • 2 вещи. 1) Я пробовал knpsnappy. В настоящее время столкнулся с проблемой. stackoverflow.com/ вопросов/22035808/ По сути, мне не удалось настроить его в среде Windows. 2) Если я его использую, могу ли я загружать динамические данные, не указывая высоту/ширину ячейки в pdf? 28.02.2014
  • Да, он создает PDF-файл из любого HTML-кода, который вы предоставляете, когда он отображается в браузере. Вы должны сделать правильный HTML. Покажите нам файл конфигурации, может быть, выясните проблему. 28.02.2014
  • @abbiya добавил сюда файл конфигурации. также задал этот вопрос здесь > stackoverflow.com/questions/22035808/ 03.03.2014

  • 2

    Вы можете попробовать этот css:

    @media print {
        .noPrint {
            display:none;
        }
    }
    

    js: window.print(); //вы можете вызвать этот метод при возникновении события

    Но для этого вам нужно зафиксировать ширину веб-страницы.

    или если вы работаете в Symfony, то можете использовать комплект dompdf или, если не в Symfony, то можете использовать только dompdf

    28.02.2014
    Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...