module Asposewordsjavaforruby::HandleMergeField

Public Class Methods

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

    # Open the document.
    doc = Rjb::import('com.aspose.words.Document').new(data_dir + "Template.doc")
    #$doc->getMailMerge()->setFieldMergingCallback(new HandleMergeField())

    fieldNames = Array["RecipientName","SenderName","FaxNumber","PhoneNumber","Subject","Body","Urgent","ForReview","PleaseComment"]
    fieldValues = Array["Josh","Jenny","123456789","","Hello","Test Pakistan 1", true, false, true]
    doc.getMailMerge().execute(fieldNames,fieldValues)

    # Save the document.
    doc.save(data_dir + "Template Out.doc")

    remove_empty_regions()        
end

Public Instance Methods

remove_empty_regions() click to toggle source
# File lib/asposewordsjavaforruby/mergefield.rb, line 21
def remove_empty_regions()
    # The path to the documents directory.
    data_dir = File.dirname(File.dirname(File.dirname(__FILE__))) + '/data/mailmerge/'

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

    # Create a dummy data source containing no data.
    data = Rjb::import('com.aspose.words.DataSet').new
    #DataSet data = new DataSet()

    # Set the appropriate mail merge clean up options to remove any unused regions from the document.
    mailmerge_cleanup_options = Rjb::import('com.aspose.words.MailMergeCleanupOptions')
    doc.getMailMerge().setCleanupOptions(mailmerge_cleanup_options.REMOVE_UNUSED_REGIONS)

    # Execute mail merge which will have no effect as there is no data. However the regions found in the document will be removed
    # automatically as they are unused.
    doc.getMailMerge().executeWithRegions(data)

    # Save the output document to disk.
    doc.save(data_dir + "TestFile.RemoveEmptyRegions Out.doc")
end