/* (non-Javadoc) * @see com.itextpdf.html2pdf.css.apply.ICssApplier#apply(com.itextpdf.html2pdf.attach.ProcessorContext, com.itextpdf.html2pdf.html.node.IStylesContainer, com.itextpdf.html2pdf.attach.ITagWorker) */ public virtual void Apply(ProcessorContext context, IStylesContainer stylesContainer, ITagWorker tagWorker ) { IDictionary <String, String> cssProps = stylesContainer.GetStyles(); IPropertyContainer container = tagWorker.GetElementResult(); if (container != null) { WidthHeightApplierUtil.ApplyWidthHeight(cssProps, context, container); BackgroundApplierUtil.ApplyBackground(cssProps, context, container); MarginApplierUtil.ApplyMargins(cssProps, context, container); PaddingApplierUtil.ApplyPaddings(cssProps, context, container); FontStyleApplierUtil.ApplyFontStyles(cssProps, context, stylesContainer, container); BorderStyleApplierUtil.ApplyBorders(cssProps, context, container); HyphenationApplierUtil.ApplyHyphenation(cssProps, context, stylesContainer, container); FloatApplierUtil.ApplyFloating(cssProps, context, container); PositionApplierUtil.ApplyPosition(cssProps, context, container); OpacityApplierUtil.ApplyOpacity(cssProps, context, container); PageBreakApplierUtil.ApplyPageBreakProperties(cssProps, context, container); OverflowApplierUtil.ApplyOverflow(cssProps, container); TransformationApplierUtil.ApplyTransformation(cssProps, context, container); OutlineApplierUtil.ApplyOutlines(cssProps, context, container); OrphansWidowsApplierUtil.ApplyOrphansAndWidows(cssProps, container); } }
/// <summary>Applies styles to child elements.</summary> /// <param name="element">the element</param> /// <param name="css">the CSS mapping</param> /// <param name="context">the processor context</param> /// <param name="stylesContainer">the styles container</param> protected internal virtual void ApplyChildElementStyles(IPropertyContainer element, IDictionary <String, String > css, ProcessorContext context, IStylesContainer stylesContainer) { FontStyleApplierUtil.ApplyFontStyles(css, context, stylesContainer, element); BackgroundApplierUtil.ApplyBackground(css, context, element); //TODO: Border-applying currently doesn't work in html way for spans inside other spans. BorderStyleApplierUtil.ApplyBorders(css, context, element); OutlineApplierUtil.ApplyOutlines(css, context, element); HyphenationApplierUtil.ApplyHyphenation(css, context, stylesContainer, element); //TODO: Margins-applying currently doesn't work in html way for spans inside other spans. (see SpanTest#spanTest07) MarginApplierUtil.ApplyMargins(css, context, element); PositionApplierUtil.ApplyPosition(css, context, element); FloatApplierUtil.ApplyFloating(css, context, element); PaddingApplierUtil.ApplyPaddings(css, context, element); }