// // methods // #region public IPDFComponent GetComponent(IContentParser parser, string name) /// <summary> /// Returns a new component for the parser based on the specified tag name. /// </summary> /// <param name="parser"></param> /// <param name="name"></param> /// <returns>The instaniated component or null if the name is not recognised</returns> public IPDFComponent GetComponent(IHtmlContentParser parser, string name, out HtmlComponentType type) { IPDFComponent proxy = null; IParserComponentFactory innerfact; if (null != _last && _lastName == name) { proxy = _last.GetComponent(parser, name, out type); } else if (_knowntags.TryGetValue(name, out innerfact)) { _last = innerfact; _lastName = name; proxy = innerfact.GetComponent(parser, name, out type); } else { _last = null; _lastName = null; type = HtmlComponentType.Unknown; proxy = GetUnknownComponent(parser, name); } if (proxy is Component) { ((Component)proxy).Tag = name; } return(proxy); }
public override IPDFComponent GetComponent(IHtmlContentParser parser, string name, out HtmlComponentType type) { SpanBase span; type = HtmlComponentType.Span; switch (name.ToLower()) { case "b": case "strong": span = new HTMLBoldSpan(); break; case "i": case "em": span = new HTMLItalicSpan(); break; case "u": span = new HTMLUnderlinedSpan(); break; case ("font"): span = new HTMLFontSpan(); break; default: span = new HTMLSpan(); break; } return(span); }
public override IPDFComponent GetComponent(IHtmlContentParser parser, string name, out HtmlComponentType type) { type = HtmlComponentType.Body; HTMLBody body = new HTMLBody(); body.ID = "html-body"; return(body); }
public SlickDealsNotifierBusiness( ILogger <SlickDealsNotifierBusiness> logger, IDealDataAccess dealDataAccess, IHtmlContentLoader htmlContentLoader, IHtmlContentParser htmlContentParser) { _logger = logger; _dealDataAccess = dealDataAccess; _htmlContentLoader = htmlContentLoader; _htmlContentParser = htmlContentParser; }
public override void SetAttribute(IHtmlContentParser parser, IPDFComponent parsed, string componentName, string attrName, string attrValue) { if (attrName == "src") { ((Image)parsed).Source = attrValue; } else { base.SetAttribute(parser, parsed, componentName, attrName, attrValue); } }
/// <summary> /// /// </summary> /// <param name="parser"></param> /// <param name="parsed"></param> /// <param name="componentName"></param> /// <param name="attrName"></param> /// <param name="attrValue"></param> public virtual void SetAttribute(IHtmlContentParser parser, IPDFComponent parsed, string componentName, string attrName, string attrValue) { if (attrName == ClassAttrName && parsed is IPDFStyledComponent) { ((IPDFStyledComponent)parsed).StyleClass = attrValue; } else if (attrName == IdAttrName) { parsed.ID = attrValue; } else if (StyleAttrNames.Contains(attrName) && parsed is IPDFStyledComponent) { this.SetStyleAttribute(parsed as IPDFStyledComponent, attrName, attrValue); } }
public override void SetAttribute(IHtmlContentParser parser, IPDFComponent parsed, string componentName, string attrName, string attrValue) { if (attrName == "colspan") { int colspan; if (int.TryParse(attrValue, out colspan)) { ((TableCell)parsed).Style.Table.CellColumnSpan = colspan; } } else { base.SetAttribute(parser, parsed, componentName, attrName, attrValue); } }
public override IPDFComponent GetComponent(IHtmlContentParser parser, string name, out HtmlComponentType type) { type = HtmlComponentType.Panel; if (String.Equals("blockquote", name, StringComparison.OrdinalIgnoreCase)) { return(new HTMLBlockQuote()); } else if (String.Equals("fieldset", name, StringComparison.OrdinalIgnoreCase)) { return(new HTMLFieldSet()); } else if (String.Equals("legend", name, StringComparison.OrdinalIgnoreCase)) { return(new HTMLLegend()); } else { return(new HTMLDiv()); } }
/// <summary> /// Sets the parsed value provided on an attribute with the specified name to the parsed component of the provided name /// </summary> /// <param name="parser"></param> /// <param name="parsed"></param> /// <param name="componentName"></param> /// <param name="attrName"></param> /// <param name="attrValue"></param> public void SetAttribute(IHtmlContentParser parser, IPDFComponent parsed, string componentName, string attrName, string attrValue) { IParserComponentFactory innerfact; //Quick check on the last one used - as this generally follows the component creation if (null != _last && _lastName == componentName) { _last.SetAttribute(parser, parsed, componentName, attrName, attrValue); } else if (_knowntags.TryGetValue(componentName, out innerfact)) { _last = innerfact; _lastName = componentName; innerfact.SetAttribute(parser, parsed, componentName, attrName, attrValue); } else { //Skip the attribute } }
public bool SetStyleValue(IHtmlContentParser parser, IPDFStyledComponent component, CSSStyleItemReader reader) { IParserStyleFactory found; if (string.IsNullOrEmpty(reader.CurrentAttribute) && reader.ReadNextAttributeName() == false) { return(false); } if (_knownStyles.TryGetValue(reader.CurrentAttribute, out found)) { return(found.SetStyleValue(parser, component, reader)); } else { if (null != parser && parser.IsLogging) { parser.Context.TraceLog.Add(TraceLevel.Warning, "CSS", "Could not set the style value on attribute '" + reader.CurrentAttribute + "' as it is not a known style attribute."); } } return(false); }
public override void SetAttribute(IHtmlContentParser parser, IPDFComponent parsed, string componentName, string attrName, string attrValue) { if (attrName == "href") { HTMLAnchor link = (HTMLAnchor)parsed; if (string.IsNullOrEmpty(attrValue)) { } else if (attrValue.StartsWith("#")) { link.Destination = attrValue; } else { link.File = attrValue; } } else { base.SetAttribute(parser, parsed, componentName, attrName, attrValue); } }
/// <summary> /// Returns true if the component is a container of other components or text /// </summary> /// <param name="parser"></param> /// <param name="component"></param> /// <param name="name"></param> /// <returns></returns> public bool IsContainerComponent(IHtmlContentParser parser, IPDFComponent component, string name) { bool container = false; IParserComponentFactory innerfact; if (null != _last && _lastName == name) { container = _last.IsContainerComponent(parser, component, name); } else if (_knowntags.TryGetValue(name, out innerfact)) { _last = innerfact; _lastName = name; container = _last.IsContainerComponent(parser, component, name); } else { _last = null; _lastName = null; container = false; } return(container); }
public override IPDFComponent GetComponent(IHtmlContentParser parser, string name, out HtmlComponentType type) { type = HtmlComponentType.Heading; HeadingBase head; switch (name.ToLower()) { case "h1": head = new HTMLHead1(); break; case "h2": head = new HTMLHead2(); break; case "h3": head = new HTMLHead3(); break; case "h4": head = new HTMLHead4(); break; case "h5": head = new HTMLHead5(); break; case "h6": head = new HTMLHead6(); break; default: head = null; break; } return(head); }
/// <summary> /// Returns the default value for an unknown tag name - in this case null /// </summary> /// <param name="parser"></param> /// <param name="name"></param> /// <returns></returns> protected virtual IPDFComponent GetUnknownComponent(IHtmlContentParser parser, string name) { return(null); }
bool IParserStyleFactory.SetStyleValue(IHtmlContentParser parser, IPDFStyledComponent onComponent, CSSStyleItemReader reader) { return(this.SetStyleValue(onComponent.Style, reader, parser.Context)); }
public override IPDFComponent GetComponent(IHtmlContentParser parser, string name, out HtmlComponentType type) { type = HtmlComponentType.List; return(new HTMLListOrdered()); }
public override IPDFComponent GetComponent(IHtmlContentParser parser, string name, out HtmlComponentType type) { type = HtmlComponentType.ListItem; return(new HTMLListDefinitionItem()); }
/// <summary> /// Abstract method that inheritors implement to create and return specific types of components. /// </summary> /// <param name="parser"></param> /// <param name="name"></param> /// <returns></returns> public abstract IPDFComponent GetComponent(IHtmlContentParser parser, string name, out HtmlComponentType type);
public override IPDFComponent GetComponent(IHtmlContentParser parser, string name, out HtmlComponentType type) { type = HtmlComponentType.Link; return(new HTMLAnchor()); }
public override IPDFComponent GetComponent(IHtmlContentParser parser, string name, out HtmlComponentType type) { type = HtmlComponentType.Panel; return(new HTMLParagraph()); }
public override IPDFComponent GetComponent(IHtmlContentParser parser, string name, out HtmlComponentType type) { type = HtmlComponentType.HorizontalLine; return(new HTMLHorizontalRule()); }
public virtual bool IsContainerComponent(IHtmlContentParser parser, IPDFComponent component, string name) { return(true); }
public override IPDFComponent GetComponent(IHtmlContentParser parser, string name, out HtmlComponentType type) { type = HtmlComponentType.TableCell; return(new HTMLTableHeaderCell()); }
public override IPDFComponent GetComponent(IHtmlContentParser parser, string name, out HtmlComponentType type) { type = HtmlComponentType.Image; return(new HTMLImage()); }
/// <summary> /// Retuns a new textual component that represents the text string provided /// </summary> /// <param name="parser"></param> /// <param name="text"></param> /// <returns></returns> public virtual IPDFComponent GetTextComponent(IHtmlContentParser parser, string text) { _last = null; _lastName = null; return(new TextLiteral(text)); }
/// <summary> /// Support methods for proxies /// </summary> /// <param name="parser"></param> /// <param name="text"></param> /// <returns></returns> public virtual IPDFComponent GetTextComponent(IHtmlContentParser parser, string text) { return(new TextLiteral(text)); }
public override bool IsContainerComponent(IHtmlContentParser parser, IPDFComponent component, string name) { return(false); }
public override IPDFComponent GetComponent(IHtmlContentParser parser, string name, out HtmlComponentType type) { type = HtmlComponentType.Preformatted; return(new HTMLPreformatted()); }