class OoxmlParser::RunProperties
Data about ‘rPr` object
Attributes
@return [Symbol] baseline of run
@return [Symbol] caps data
@return [RunSpacing] get color
@return [True, False] is text emboss
@return [Color, DocxColorScheme] color of run
@return [FontStyle] font style of run
@return [Hyperlink] hyperlink of run
@return [ValuedChild] language property
@return [ValuedChild] ligatures type
@return [Outline] outline data
@return [Position] position property
@return [Nokogiri::XML:Element] raw node value
@return [True, False] is text rtl
@return [RunFonts] value of RunFonts
@return [RunStyle] run style
@return [Shade] shade property
@return [True, False] is text shadow
@return [Size] get run size
@return [OoxmlSize] space size
@return [RunSpacing] get run spacing
@return [True, False] is text vanish
@return [Symbol] vertical align data
Public Class Methods
Source
# File lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties.rb, line 59 def initialize(params = {}) @font_name = params.fetch(:font_name, '') @font_style = FontStyle.new @baseline = :baseline super(parent: params[:parent]) end
OoxmlParser::OOXMLDocumentObject::new
Public Instance Methods
Source
# File lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties.rb, line 151 def font_name return @font_name unless @font_name.empty? return @run_fonts.ascii if @run_fonts root_object.default_font_typeface end
@return [String] name of font
Source
# File lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties.rb, line 146 def font_size @font_size ||= root_object.default_font_size end
@return [Float] font size
Source
# File lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties.rb, line 69 def parse(node) @raw_node = node @font_style = root_object.default_font_style.dup node.attributes.each do |key, value| case key when 'sz' @font_size = value.value.to_f / 100.0 when 'spc' @space = OoxmlSize.new(value.value.to_f, :one_100th_point) when 'b' @font_style.bold = option_enabled?(node, 'b') when 'i' @font_style.italic = option_enabled?(node, 'i') when 'u' @font_style.underlined = Underline.new(parent: self).parse(value.value) when 'strike' @font_style.strike = value_to_symbol(value) when 'baseline' @baseline = parse_baseline(value) when 'cap' @caps = value.value.to_sym end end node.xpath('*').each do |node_child| case node_child.name when 'sz' @size = Size.new.parse(node_child) when 'shadow' @shadow = option_enabled?(node_child) when 'emboss' @emboss = option_enabled?(node_child) when 'vanish' @vanish = option_enabled?(node_child) when 'rtl' @rtl = option_enabled?(node_child) when 'spacing' @spacing = RunSpacing.new(parent: self).parse(node_child) when 'color' @color = OoxmlColor.new(parent: self).parse(node_child) when 'latin' @font_name = node_child.attribute('typeface').value when 'b' @font_style.bold = option_enabled?(node_child) when 'i' @font_style.italic = option_enabled?(node_child, 'i') when 'u' @font_style.underlined = Underline.new(:single) when 'vertAlign' @vertical_align_object = ValuedChild.new(:symbol, parent: self).parse(node_child) @vertical_align = @vertical_align_object.value when 'rFont' @font_name = node_child.attribute('val').value when 'rFonts' @run_fonts = RunFonts.new(parent: self).parse(node_child) when 'strike' @font_style.strike = option_enabled?(node_child) when 'hlinkClick' @hyperlink = Hyperlink.new(parent: self).parse(node_child) when 'ln' @outline = Outline.new(parent: self).parse(node_child) when 'lang' @language = ValuedChild.new(:string, parent: self).parse(node_child) when 'position' @position = Position.new(parent: self).parse(node_child) when 'shd' @shade = Shade.new(parent: self).parse(node_child) when 'rStyle' @run_style = RunStyle.new(parent: self).parse(node_child) when 'ligatures' @ligatures = ValuedChild.new(:symbol, parent: self).parse(node_child) end end @font_color = DocxColorScheme.new(parent: self).parse(node) self end
Parse RunProperties
object @param node [Nokogiri::XML:Element] node to parse @return [RunProperties] result of parsing
Private Instance Methods
Source
# File lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties.rb, line 162 def parse_baseline(value) case value.value.to_i when -25_000, -30_000 :subscript when 30_000 :superscript when 0 :baseline end end
@param value [Nokogiri::XML::Attr] nokogiri parameter to parse @return [Symbol] baseline value depending of type