com.aspose.words
Class ImportFormatMode

java.lang.Object
    extended by com.aspose.words.ImportFormatMode

public class ImportFormatMode 
extends java.lang.Object

Utility class containing constants. Specifies how formatting is merged when importing content from another document.

When you copy nodes from one document to another, this option specifies how formatting is resolved when both documents have a style with the same name, but different formatting.

The formatting is resolved as follows:

  1. Built-in styles are matched using their locale independent style identifier. User defined styles are matched using case-sensitive style name.
  2. If a matching style is not found in the destination document, the style (and all styles referenced by it) are copied into the destination document and the imported nodes are updated to reference the new style.
  3. If a matching style already exists in the destination document, what happens depends on the importFormatMode parameter passed to Document.importNode(com.aspose.words.Node, boolean, int) as described below.

When using the UseDestinationStyles option, if a matching style already exists in the destination document, the style is not copied and the imported nodes are updated to reference the existing style.

The drawback of using UseDestinationStyles is that the imported text might look different in the destination document comparing to the source document. For example, the "Heading 1" style in the source document uses Arial 16pt font and the "Heading 1" style in the destination document uses Times New Roman 14pt font. When importing text of "Heading 1" style with no other direct formatting, it will appear as Times New Roman 14pt font in the destination document.

Using the KeepSourceFormatting option allows to make sure the imported text looks in the destination document exactly like it was in the source document. If a matching style already exists in the destination document, the source style is copied and given a unique name by appending a suffix number to it, for example "Normal_0" or "Heading 1_5".

The drawback of using KeepSourceFormatting is that if you perform several imports, you could end up with many styles in the destination document and that could make using consistent style formatting in Microsoft Word difficult for this document.

Example:

Combines two documents into one.
public void CombineDocuments() throws Exception
{
    // Open the destination document.
    Document dstDoc = new Document(getMyDir() + "Section.CombineDocuments1.doc");

    // Open the source document.
    Document srcDoc = new Document(getMyDir() + "Section.CombineDocuments2.doc");

    // For a twist, let's say I want the second document to start on the same page where
    // the first document ends. This is controlled by a property of the first section.
    srcDoc.getFirstSection().getPageSetup().setSectionStart(SectionStart.CONTINUOUS);

    // Combine the documents, see the function below.
    AppendDoc(dstDoc, srcDoc);

    // Save the finished document.
    dstDoc.save(getMyDir() + "Section.CombineDocuments Out.doc");
}

/// <summary>
/// A useful function that you can use to easily append one document to another.
/// </summary>
/// <param name="dstDoc">The destination document where to append to.</param>
/// <param name="srcDoc">The source document.</param>
private void AppendDoc(Document dstDoc, Document srcDoc) throws Exception
{
    // Loop through all sections in the source document.
    // Section nodes are immediate children of the Document node so we can just enumerate the Document.
    for (Section srcSection : srcDoc.getSections())
    {
        // Because we are copying a section from one document to another,
        // it is required to import the Section node into the destination document.
        // This adjusts any document-specific references to styles, lists, etc.
        //
        // Importing a node creates a copy of the original node, but the copy
        // is ready to be inserted into the destination document.
        Node dstSection = dstDoc.importNode(srcSection, true, ImportFormatMode.KEEP_SOURCE_FORMATTING);

        // Now the new section node can be appended to the destination document.
        dstDoc.appendChild(dstSection);
    }
}
See Also:
Document.importNode(com.aspose.words.Node, boolean, int)

Field Summary
static final intUSE_DESTINATION_STYLES
           Use the destination document styles and copy new styles. This is the default option.
static final intKEEP_SOURCE_FORMATTING
           Copy all required styles to the destination document, generate unique style names if needed.
 

Field Detail

USE_DESTINATION_STYLES

public static final int USE_DESTINATION_STYLES
Use the destination document styles and copy new styles. This is the default option.

KEEP_SOURCE_FORMATTING

public static final int KEEP_SOURCE_FORMATTING
Copy all required styles to the destination document, generate unique style names if needed.

See Also:
          Aspose.Words Documentation - the home page for the Aspose.Words Product Documentation.
          Aspose.Words Support Forum - our preferred method of support.