2011-12-23 2 views
0

Я хочу преобразовать HTML-файл в PDF, используя iTextSharp.Альтернативы iTextSharp для преобразования HTML в PDF

Я использовал this code.

Затем я сделал следующее, чтобы преобразовать его в PDF: не

HTMLWorker htmlWorker = new HTMLWorker(document); 
htmlWorker.Parse(new StringReader(results)); 
document.Close(); 

Однако ни один из CSS разбирается. Любые альтернативы?

+0

Что вы пробовали? Код в этом вопросе - это получение HTML-страницы, а не преобразование чего-либо в PDF. – Amy

+0

Извините, отредактировал вопрос – user1016313

+0

'HTMLWorker' устарел.попробуйте вместо этого использовать XMLWorker. – VahidN

ответ

10

18 месяцев назад мы исчерпывающе протестировали большинство доступных конвертеров html-to-pdf (оплачено и бесплатно). В конце концов, лучший из лучших конвертер html-to-pdf был бесплатной программой с открытым исходным кодом под названием wkhtmltopdf.

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

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

Я знаю, что я звучу как полный фанат, но я нет. Я просто тот, кто так устал от всех конвертеров bullsh * t, что меня дважды сдуло, когда мы нашли wkhtmltopdf. Я просто не могу рекомендовать эту небольшую программу.

+0

webkit рендеринг двигатель? так как насчет пользователей Firefox и IE? – maxisam

+1

Не имеет значения, какой веб-браузер пользователь установил на своей машине - пока страница закодирована в семантически корректном html, формат pdf будет выглядеть просто отлично. –

+0

Ничего себе! это здорово! – maxisam

2

С точки зрения альтернатив, я могу только рекомендовать ABCpdf, который мы успешно используем для преобразования большого количества HTML-документов в PDF в рамках одного из наших веб-приложений.

2

не загружать его автоматически. Вам нужно сделать это вручную, как следует.

StyleSheet ss = new StyleSheet(); 
ss.LoadStyle("body", "leading", "16,0"); 
ss.LoadStyle("p", "style", "font-family:Times New Roman"); 

, а затем использовать

List<IElement> htmlToPDF = HTMLWorker.ParseToList(new StringReader("<font face=\"Times\">" + html + "</font>"), style); 

foreach (IElement element in htmlToPDF) { 
    document.Add(element); 
    } 

однако, только некоторые стили работают в itextsharp не все из них.

На самом деле вы должны попробовать XMLWorker, плагин для itextsharp. Он только что вышел в этом месяце. Он может обрабатывать html намного лучше, чем использовать только itextsharp.

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

Смежные вопросы