Подтвердить что ты не робот

Render PDF в iTextSharp из HTML с CSS

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

Особо будут оценены конкретные примеры кода.

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

4b9b3361

Ответ 1

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

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

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

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

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

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

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

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

Ответ 2

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

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

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

Ответ 3

 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;
        }