module Asposewordsjavaforruby::RemoveBreaks

Public Class Methods

new() click to toggle source
# File lib/asposewordsjavaforruby/removebreaks.rb, line 3
def initialize()
    # The path to the documents directory.
    data_dir = File.dirname(File.dirname(File.dirname(__FILE__))) + '/data/document/'

    # Open the document.
    doc = Rjb::import('com.aspose.words.Document').new(data_dir + "TestRemoveBreaks.doc")

    # Remove the page and section breaks from the document.
    # In Aspose.Words section breaks are represented as separate Section nodes in the document.
    # To remove these separate sections the sections are combined.
    remove_page_breaks(doc)
    #remove_section_breaks(doc)
    
    # Save the document.
    doc.save(data_dir + "TestRemoveBreaks Out.doc")
end

Public Instance Methods

remove_page_breaks(doc) click to toggle source
# File lib/asposewordsjavaforruby/removebreaks.rb, line 20
def remove_page_breaks(doc)
    # Retrieve all paragraphs in the document.
    node_type = Rjb::import("com.aspose.words.NodeType")
    paragraphs = doc.getChildNodes(node_type.PARAGRAPH, true)
    paragraphs_count = paragraphs.getCount()
   
    i = 0
    while (i < paragraphs_count) do
        paragraphs = doc.getChildNodes(node_type.PARAGRAPH, true)
        para = paragraphs.get(i)
        
        if (para.getParagraphFormat().getPageBreakBefore()) then
            para.getParagraphFormat().setPageBreakBefore(false)
        end

        runs = para.getRuns().toArray()
        runs.each do |run|
            control_char = Rjb::import("com.aspose.words.ControlChar")
            p run.getText().contains(control_char.PAGE_BREAK)
            abort()
            #if (run.getText().contains(control_char.PAGE_BREAK)) then
                run_text = run.getText()
                run_text = run_text.gsub(control_char.PAGE_BREAK, '')
                run.setText(run_text)
            #end
        end
        i = i + 1
    end
end
remove_section_breaks(doc) click to toggle source
# File lib/asposewordsjavaforruby/removebreaks.rb, line 50
def remove_section_breaks(doc)
    # Loop through all sections starting from the section that precedes the last one
    # and moving to the first section.
    i = doc.getSections().getCount()
    i = i - 2
    while (i >= 0) do
        # Copy the content of the current section to the beginning of the last section.
        doc.getLastSection().prependContent(doc.getSections().get(i))
        # Remove the copied section.
        doc.getSections().get(i).remove()
        i = i - 1
    end
end