2013-03-15 3 views
2

По какой-то причине я не могу применить стили на своих htmlElements. Я создал набор стиля для тестирования, но стиль не используется для каждого элемента div. Может ли кто-нибудь узнать, что я делаю неправильно?HtmlTags в iTextSharp не работает при преобразовании html в pdf

try 
{ 
    // set the file name 
    string file = "C:/MyPdf.pdf"; 

    // create a pdf document 
    Document document = new Document(); 

    // set the page size, set the orientation 
    document.SetPageSize(PageSize.A4); 

    // create a writer instance 
    PdfWriter pdfWriter = PdfWriter.GetInstance(document, new FileStream(file, FileMode.Create)); 

    // open the document 
    document.Open(); 

    // THIS STYLE IS SET FOR TESTING PURPOSES 
    StyleSheet styles = new StyleSheet(); 
    styles.LoadTagStyle(HtmlTags.DIV, HtmlTags.BGCOLOR, "#ff0000"); 

    // html pagina inlezen 
    string htmlText = File.ReadAllText("C:\\afl.html"); 

    // html pagina parsen in een arraylist van IElements 
    List<IElement> htmlElements = HTMLWorker.ParseToList(new StringReader(htmlText), styles); 

    // add the IElements to the document 
    for (int i = 0; i < htmlElements.Count; i++) 
    { 
     // cast the element 
     IElement htmlElement = ((IElement)htmlElements[i]); 
     document.Add(htmlElement); 
    } 

    // close the document 
    document.Close(); 

    // open the pdf document 
    //Process.Start(file); 
} 
catch (Exception ex) 
{ 
    var derp = ex.Message; 
} 

ответ

2

HTMLWorker больше не поддерживается, и вместо этого вам предлагается использовать XMLWorker.

Это означает, что в большинстве тегов не поддерживаются цвета фона, кроме, возможно, табличных тегов. Причина в том, что сама спецификация PDF не поддерживает цвета фона. Для достижения этого iText необходимо либо использовать сложные аннотации, либо рисовать фигуры позади текста.

См. this link for the current XMLWorker documentation, щелкните по поддержке CSS в левом навигаторе, чтобы просмотреть различные поддерживаемые свойства.

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

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