Рендеринг PDF в iTextSharp из HTML с помощью CSS

Любая идея, как визуализировать PDF-файл с помощью iTextSharp, чтобы он отображал страницу с помощью CSS. CSS можно либо встроить в HTML, либо передать отдельно, мне все равно, просто хочу, чтобы он работал.

Конкретные примеры кода приветствуются сильно.

Кроме того, я бы очень хотел придерживаться iTextSharp, хотя, если у вас есть предложения по чему-то еще, он должен быть бесплатным, с открытым исходным кодом и иметь лицензию, позволяющую использовать его в коммерческом программном обеспечении.

Я собираюсь использовать iTextSharp для своего нового проекта RealEstate, я создам PDF-файл из выбранных владений и отправлю его на печать. Если то, что вы упомянули об использовании css, возможно, было бы здорово. Надеюсь, кто-нибудь даст нам подробный ответ на ваш вопрос. Спасибо

Barbaros Alp 10.01.2009 05:03

Взгляните на этот похожий вопрос.

Mauricio Scheffer 01.02.2009 18:53
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
21
2
54 324
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Сейчас это невозможно, но ничто не мешает вам начать проект с открытым исходным кодом, который сделает это. Я мог бы начать один, потому что он мне тоже нужен!

В основном вам понадобится парсер, который преобразует разметку html и css в классы iTextSharp. Итак, <table> превратился в iTextSharp.SimpleTable и так далее.

Было бы легко придумать прототип, который мог бы работать с ограниченным подмножеством html и css.

Обновлять: До тех пор, пока это будет возможно, я вот как временно решил для себя. Всего два шага:

  • Попросите пользователей загрузить приложение с открытым исходным кодом под названием PDF создатель.
  • Сделайте все свои отчеты html удобными для печати, предоставив таблицы стилей для печати.

    Если некоторые из ваших многостраничных отчетов должны иметь заголовки на каждой странице, настройте их в теге THEAD html.

Теперь пользователи смогут удобно печатать, и если они выберут драйвер принтера PDFCreator, они даже смогут получать отчет в формате PDF (есть и другие драйверы для принтеров PDF, но этот бесплатный и с открытым исходным кодом).

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

Ха ... если бы у меня было время. Я бы стал, если бы я еще не работал над другим проектом, для которого я пытаюсь использовать iTextSharp. К тому же ... у меня парсеры сосут ...

Adam Haile 10.01.2009 08:04

Вы должны проверить Rotativa. Вот и Сообщение блога, в котором объясняется, как получить его с помощью диспетчера пакетов Nuget. Он основан на wkhtmltopdf, который Мик упомянул в другом ответе.

d456 27.03.2013 23:43

Попробуйте WKHTMLTOPDF.

Это реализация webkit с открытым исходным кодом. Оба бесплатны.

Мы установили небольшой туториал здесь

Это отстой! вроде действительно, он иногда 100% потребляет процессор!

Shilpa Soni 02.06.2018 17:44

@ShilpaSoni странно, мы используем его в производстве годами и никогда не испытывали никаких проблем с процессором (или другими)

Mic 03.06.2018 21:16

Возможно, у вас менее сложный HTML.

Shilpa Soni 04.06.2018 08:04
 List<DateTime[]> getListWeeks(int annee)
        {
            List<DateTime[]> weeks = new List<DateTime[]>();
            DateTime beginDate = new DateTime(annee, 1, 1);
            DateTime endDate = new DateTime(annee, 12, 31);
            int nb =(int)beginDate.DayOfWeek;
            DateTime monday = beginDate.AddDays(-nb+1); ;
            DateTime saturday = monday.AddDays(6);
            while (monday < endDate)
            {
                    weeks.Add(new DateTime[] { monday, saturday });
                    monday = monday.AddDays(7);
                    saturday = monday.AddDays(6);
            }
            return weeks;
        }

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