module Asposewordsjavaforruby::UpdateFields

Public Class Methods

new() click to toggle source
# File lib/asposewordsjavaforruby/updatefields.rb, line 3
def initialize()
    update_fields()
end

Public Instance Methods

update_fields() click to toggle source
# File lib/asposewordsjavaforruby/updatefields.rb, line 7
def update_fields()
    # The path to the documents directory.
    data_dir = File.dirname(File.dirname(File.dirname(__FILE__))) + '/data/quickstart/'

    # Demonstrates how to insert fields and update them using Aspose.Words.
    # First create a blank document.
    doc = Rjb::import('com.aspose.words.Document').new()
    # Use the document builder to insert some content and fields.
    builder = Rjb::import('com.aspose.words.DocumentBuilder').new(doc)
    # Insert a table of contents at the beginning of the document.
    builder.insertTableOfContents("\\o \"1-3\" \\h \\z \\u")
    builder.writeln()
    # Insert some other fields.
    builder.write("Page: ")
    builder.insertField("PAGE")
    builder.write(" of ")
    builder.insertField("NUMPAGES")
    builder.writeln()
    builder.write("Date: ")
    builder.insertField("DATE")

    # Start the actual document content on the second page.
    break_type = Rjb::import("com.aspose.words.BreakType")
    builder.insertBreak(break_type.SECTION_BREAK_NEW_PAGE)

    # Build a document with complex structure by applying different heading styles thus creating TOC entries.
    style_identifier = Rjb::import("com.aspose.words.StyleIdentifier")
    builder.getParagraphFormat().setStyleIdentifier(style_identifier.HEADING_1)
    builder.writeln("Heading 1")
    builder.getParagraphFormat().setStyleIdentifier(style_identifier.HEADING_2)
    builder.writeln("Heading 1.1")
    builder.writeln("Heading 1.2")
    builder.getParagraphFormat().setStyleIdentifier(style_identifier.HEADING_1)
    builder.writeln("Heading 2")
    builder.writeln("Heading 3")

    # Move to the next page.
    builder.insertBreak(break_type.PAGE_BREAK)
    builder.getParagraphFormat().setStyleIdentifier(style_identifier.HEADING_2)
    builder.writeln("Heading 3.1")
    builder.getParagraphFormat().setStyleIdentifier(style_identifier.HEADING_3)
    builder.writeln("Heading 3.1.1")
    builder.writeln("Heading 3.1.2")
    builder.writeln("Heading 3.1.3")
    builder.getParagraphFormat().setStyleIdentifier(style_identifier.HEADING_2)
    builder.writeln("Heading 3.2")
    builder.writeln("Heading 3.3")
    puts "Updating all fields in the document."
    
    # Call the method below to update the TOC.
    doc.updateFields()
    doc.save(data_dir + "Document Field Update Out.docx")
end