Рендеринг PDF в iTextSharp из HTML с CSS - PullRequest
21 голосов
/ 10 января 2009

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

Конкретные примеры кода будут значительно оценены.

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

Ответы [ 3 ]

9 голосов
/ 10 января 2009

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

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

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

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

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

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

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

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

6 голосов
/ 31 августа 2009

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

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

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

2 голосов
/ 22 декабря 2015
 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;
        }
...