ITextSharp: укажите классы HTML или идентификатор CSS - PullRequest
1 голос
/ 08 марта 2012

Я конвертирую некоторый HTML в файл .pdf, используя ITextSharp.

Можно ли установить классы css в ITextSharp или я могу установить только элементы HTML CSS?

Например: если я конвертирую следующий HTML

<p class="redBigText">test</p>

Могу ли я создать объект ITextSharp StyleSheet и указать CSS для класса redBigText ?

StyleSheet styles = new iTextSharp.text.html.simpleparser.StyleSheet();
styles.LoadTagStyle(".redBigText", "font-size", "50px");
styles.LoadTagStyle(".redBigText", "color", "#ff0000");
var parsedHtmlElements = HTMLWorker.ParseToList(new StringReader(mainContents), styles);

Или я могу установить только элементы CSS в ITextSharp?

StyleSheet styles = new iTextSharp.text.html.simpleparser.StyleSheet();
styles.LoadTagStyle("P", "font-size", "50px");
styles.LoadTagStyle("P", "color", "#ff0000");
var parsedHtmlElements = HTMLWorker.ParseToList(new StringReader(mainContents), styles);

Ответы [ 2 ]

6 голосов
/ 08 марта 2012

Да, вы можете указать имя класса CSS:

string Html = @"
<h1>h1</h1>
<p>Default paragraph</p>  
<p class='redBigText'>A paragraph with CSS class</p>  
";
StyleSheet styles = new StyleSheet();
styles.LoadStyle("redBigText", "size", "20pt");
styles.LoadStyle("redBigText", "color", "#ff0000");

Это задокументировано здесь .

К сожалению, вы не можете указать id атрибутов.Также учтите, что если вы смешиваете и сопоставляете вызовы LoadTagStyle() и LoadStyle(), LoadTagStyle() выигрывает.Например:

StyleSheet styles = new StyleSheet();
styles.LoadTagStyle("p", "size", "10pt");
styles.LoadTagStyle("p", "color", "#0000ff");     
styles.LoadStyle("redBigText", "size", "20pt");
styles.LoadStyle("redBigText", "color", "#ff0000");

Здесь все абзацы синие и 10 пт.

1 голос
/ 05 октября 2016

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

Вы должны преобразовать следующую строку

<p class="redBigText">test</p>

до

<p style="font-size : 50px;color : #ff0000">test</p>

itextsharp теперь будет применять встроенный стиль к вашему html, он не распознает классы css, так как на них ссылаются из внешнего файла.

Вы можете использовать Этот инструмент встроенных стилей для преобразования классов CSS в встроенный стиль.

  • Просто скопируйте CSS из ваших классов на html-страницу.
  • скопируйте html в инструмент inliner.

Вы получите встроенную HTML-страницу CSS. ~ Happy Codding

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...