Working With Styles in Ruby
Contents
[
Hide
]
Aspose.Words - Extract Content Based On Styles
Ruby Code
def initialize()
# The path to the documents directory.
data_dir = File.dirname(File.dirname(File.dirname(__FILE__))) + '/data/'
# Open the document.
doc = Rjb::import('com.aspose.words.Document').new(data_dir + "Test.Styles.doc")
# Define style names as they are specified in the Word document.
para_style = "Heading 1"
run_style = "Intense Emphasis"
# Collect paragraphs with defined styles.
# Show the number of collected paragraphs and display the text of this paragraphs.
paragraphs = paragraphs_by_style_name(doc, para_style)
para_size = paragraphs.size()
#para_size = java_values($para_size)
puts "Paragraphs with #{para_style} styles #{para_size}"
paragraphs = paragraphs.toArray()
save_format = Rjb::import("com.aspose.words.SaveFormat")
paragraphs.each do | paragraph |
puts paragraph.toString(save_format.TEXT)
end
# Collect runs with defined styles.
# Show the number of collected runs and display the text of this runs.
runs = runs_by_style_name(doc, run_style)
runs_size = runs.size()
puts "Runs with #{run_style} styles #{runs_size}"
runs = runs.toArray()
runs.each do | run |
puts run.getRange().getText()
end
end
def paragraphs_by_style_name(doc, para_style)
# Create an array to collect paragraphs of the specified style.
paragraphsWithStyle = Rjb::import("java.util.ArrayList").new
# Get all paragraphs from the document.
nodeType = Rjb::import("com.aspose.words.NodeType")
paragraphs = doc.getChildNodes(nodeType.PARAGRAPH, true)
paragraphs = paragraphs.toArray()
# Look through all paragraphs to find those with the specified style.
paragraphs.each do | paragraph |
para_name = paragraph.getParagraphFormat().getStyle().getName()
if (para_name == para_style) then
paragraphsWithStyle.add(paragraph)
end
end
paragraphsWithStyle
end
def runs_by_style_name(doc, run_style)
# Create an array to collect runs of the specified style.
runsWithStyle = Rjb::import("java.util.ArrayList").new
# Get all runs from the document.
nodeType = Rjb::import("com.aspose.words.NodeType")
runs = doc.getChildNodes(nodeType.RUN, true)
# Look through all runs to find those with the specified style.
runs = runs.toArray()
runs.each do | run |
if (run.getFont().getStyle().getName() == run_style) then
runsWithStyle.add(run)
end
end
runsWithStyle
end
Download Running Code
Download Extract Content Based On Styles (Aspose.Words) from any of the below mentioned social coding sites: