public class Compatibility
extends java.lang.Object
Examples:
Shows how to optimize the document for different versions of Microsoft Word.
public void optimizeFor() throws Exception
{
Document doc = new Document();
// This object contains an extensive list of flags unique to each document
// that allow us to facilitate backward compatibility with older versions of Microsoft Word.
CompatibilityOptions options = doc.getCompatibilityOptions();
// Print the default settings for a blank document.
System.out.println("\nDefault optimization settings:");
printCompatibilityOptions(options);
// We can access these settings in Microsoft Word via "File" -> "Options" -> "Advanced" -> "Compatibility options for...".
doc.save(getArtifactsDir() + "CompatibilityOptions.OptimizeFor.DefaultSettings.docx");
// We can use the OptimizeFor method to ensure optimal compatibility with a specific Microsoft Word version.
doc.getCompatibilityOptions().optimizeFor(MsWordVersion.WORD_2010);
System.out.println("\nOptimized for Word 2010:");
printCompatibilityOptions(options);
doc.getCompatibilityOptions().optimizeFor(MsWordVersion.WORD_2000);
System.out.println("\nOptimized for Word 2000:");
printCompatibilityOptions(options);
}
/// <summary>
/// Groups all flags in a document's compatibility options object by state, then prints each group.
/// </summary>
private static void printCompatibilityOptions(CompatibilityOptions options)
{
ArrayList<String> enabledOptions = new ArrayList();
ArrayList<String> disabledOptions = new ArrayList();
addOptionName(options.getAdjustLineHeightInTable(), "AdjustLineHeightInTable", enabledOptions, disabledOptions);
addOptionName(options.getAlignTablesRowByRow(), "AlignTablesRowByRow", enabledOptions, disabledOptions);
addOptionName(options.getAllowSpaceOfSameStyleInTable(), "AllowSpaceOfSameStyleInTable", enabledOptions, disabledOptions);
addOptionName(options.getApplyBreakingRules(), "ApplyBreakingRules", enabledOptions, disabledOptions);
addOptionName(options.getAutoSpaceLikeWord95(), "AutoSpaceLikeWord95", enabledOptions, disabledOptions);
addOptionName(options.getAutofitToFirstFixedWidthCell(), "AutofitToFirstFixedWidthCell", enabledOptions, disabledOptions);
addOptionName(options.getBalanceSingleByteDoubleByteWidth(), "BalanceSingleByteDoubleByteWidth", enabledOptions, disabledOptions);
addOptionName(options.getCachedColBalance(), "CachedColBalance", enabledOptions, disabledOptions);
addOptionName(options.getConvMailMergeEsc(), "ConvMailMergeEsc", enabledOptions, disabledOptions);
addOptionName(options.getDisableOpenTypeFontFormattingFeatures(), "DisableOpenTypeFontFormattingFeatures", enabledOptions, disabledOptions);
addOptionName(options.getDisplayHangulFixedWidth(), "DisplayHangulFixedWidth", enabledOptions, disabledOptions);
addOptionName(options.getDoNotAutofitConstrainedTables(), "DoNotAutofitConstrainedTables", enabledOptions, disabledOptions);
addOptionName(options.getDoNotBreakConstrainedForcedTable(), "DoNotBreakConstrainedForcedTable", enabledOptions, disabledOptions);
addOptionName(options.getDoNotBreakWrappedTables(), "DoNotBreakWrappedTables", enabledOptions, disabledOptions);
addOptionName(options.getDoNotExpandShiftReturn(), "DoNotExpandShiftReturn", enabledOptions, disabledOptions);
addOptionName(options.getDoNotLeaveBackslashAlone(), "DoNotLeaveBackslashAlone", enabledOptions, disabledOptions);
addOptionName(options.getDoNotSnapToGridInCell(), "DoNotSnapToGridInCell", enabledOptions, disabledOptions);
addOptionName(options.getDoNotSuppressIndentation(), "DoNotSnapToGridInCell", enabledOptions, disabledOptions);
addOptionName(options.getDoNotSuppressParagraphBorders(), "DoNotSuppressParagraphBorders", enabledOptions, disabledOptions);
addOptionName(options.getDoNotUseEastAsianBreakRules(), "DoNotUseEastAsianBreakRules", enabledOptions, disabledOptions);
addOptionName(options.getDoNotUseHTMLParagraphAutoSpacing(), "DoNotUseHTMLParagraphAutoSpacing", enabledOptions, disabledOptions);
addOptionName(options.getDoNotUseIndentAsNumberingTabStop(), "DoNotUseIndentAsNumberingTabStop", enabledOptions, disabledOptions);
addOptionName(options.getDoNotVertAlignCellWithSp(), "DoNotVertAlignCellWithSp", enabledOptions, disabledOptions);
addOptionName(options.getDoNotVertAlignInTxbx(), "DoNotVertAlignInTxbx", enabledOptions, disabledOptions);
addOptionName(options.getDoNotWrapTextWithPunct(), "DoNotWrapTextWithPunct", enabledOptions, disabledOptions);
addOptionName(options.getFootnoteLayoutLikeWW8(), "FootnoteLayoutLikeWW8", enabledOptions, disabledOptions);
addOptionName(options.getForgetLastTabAlignment(), "ForgetLastTabAlignment", enabledOptions, disabledOptions);
addOptionName(options.getGrowAutofit(), "GrowAutofit", enabledOptions, disabledOptions);
addOptionName(options.getLayoutRawTableWidth(), "LayoutRawTableWidth", enabledOptions, disabledOptions);
addOptionName(options.getLayoutTableRowsApart(), "LayoutTableRowsApart", enabledOptions, disabledOptions);
addOptionName(options.getLineWrapLikeWord6(), "LineWrapLikeWord6", enabledOptions, disabledOptions);
addOptionName(options.getMWSmallCaps(), "MWSmallCaps", enabledOptions, disabledOptions);
addOptionName(options.getNoColumnBalance(), "NoColumnBalance", enabledOptions, disabledOptions);
addOptionName(options.getNoExtraLineSpacing(), "NoExtraLineSpacing", enabledOptions, disabledOptions);
addOptionName(options.getNoLeading(), "NoLeading", enabledOptions, disabledOptions);
addOptionName(options.getNoSpaceRaiseLower(), "NoSpaceRaiseLower", enabledOptions, disabledOptions);
addOptionName(options.getNoTabHangInd(), "NoTabHangInd", enabledOptions, disabledOptions);
addOptionName(options.getOverrideTableStyleFontSizeAndJustification(), "OverrideTableStyleFontSizeAndJustification", enabledOptions, disabledOptions);
addOptionName(options.getPrintBodyTextBeforeHeader(), "PrintBodyTextBeforeHeader", enabledOptions, disabledOptions);
addOptionName(options.getPrintColBlack(), "PrintColBlack", enabledOptions, disabledOptions);
addOptionName(options.getSelectFldWithFirstOrLastChar(), "SelectFldWithFirstOrLastChar", enabledOptions, disabledOptions);
addOptionName(options.getShapeLayoutLikeWW8(), "ShapeLayoutLikeWW8", enabledOptions, disabledOptions);
addOptionName(options.getShowBreaksInFrames(), "ShowBreaksInFrames", enabledOptions, disabledOptions);
addOptionName(options.getSpaceForUL(), "SpaceForUL", enabledOptions, disabledOptions);
addOptionName(options.getSpacingInWholePoints(), "SpacingInWholePoints", enabledOptions, disabledOptions);
addOptionName(options.getSplitPgBreakAndParaMark(), "SplitPgBreakAndParaMark", enabledOptions, disabledOptions);
addOptionName(options.getSubFontBySize(), "SubFontBySize", enabledOptions, disabledOptions);
addOptionName(options.getSuppressBottomSpacing(), "SuppressBottomSpacing", enabledOptions, disabledOptions);
addOptionName(options.getSuppressSpBfAfterPgBrk(), "SuppressSpBfAfterPgBrk", enabledOptions, disabledOptions);
addOptionName(options.getSuppressSpacingAtTopOfPage(), "SuppressSpacingAtTopOfPage", enabledOptions, disabledOptions);
addOptionName(options.getSuppressTopSpacing(), "SuppressTopSpacing", enabledOptions, disabledOptions);
addOptionName(options.getSuppressTopSpacingWP(), "SuppressTopSpacingWP", enabledOptions, disabledOptions);
addOptionName(options.getSwapBordersFacingPgs(), "SwapBordersFacingPgs", enabledOptions, disabledOptions);
addOptionName(options.getSwapInsideAndOutsideForMirrorIndentsAndRelativePositioning(), "SwapInsideAndOutsideForMirrorIndentsAndRelativePositioning", enabledOptions, disabledOptions);
addOptionName(options.getTransparentMetafiles(), "TransparentMetafiles", enabledOptions, disabledOptions);
addOptionName(options.getTruncateFontHeightsLikeWP6(), "TruncateFontHeightsLikeWP6", enabledOptions, disabledOptions);
addOptionName(options.getUICompat97To2003(), "UICompat97To2003", enabledOptions, disabledOptions);
addOptionName(options.getUlTrailSpace(), "UlTrailSpace", enabledOptions, disabledOptions);
addOptionName(options.getUnderlineTabInNumList(), "UnderlineTabInNumList", enabledOptions, disabledOptions);
addOptionName(options.getUseAltKinsokuLineBreakRules(), "UseAltKinsokuLineBreakRules", enabledOptions, disabledOptions);
addOptionName(options.getUseAnsiKerningPairs(), "UseAnsiKerningPairs", enabledOptions, disabledOptions);
addOptionName(options.getUseFELayout(), "UseFELayout", enabledOptions, disabledOptions);
addOptionName(options.getUseNormalStyleForList(), "UseNormalStyleForList", enabledOptions, disabledOptions);
addOptionName(options.getUsePrinterMetrics(), "UsePrinterMetrics", enabledOptions, disabledOptions);
addOptionName(options.getUseSingleBorderforContiguousCells(), "UseSingleBorderforContiguousCells", enabledOptions, disabledOptions);
addOptionName(options.getUseWord2002TableStyleRules(), "UseWord2002TableStyleRules", enabledOptions, disabledOptions);
addOptionName(options.getUseWord2010TableStyleRules(), "UseWord2010TableStyleRules", enabledOptions, disabledOptions);
addOptionName(options.getUseWord97LineBreakRules(), "UseWord97LineBreakRules", enabledOptions, disabledOptions);
addOptionName(options.getWPJustification(), "WPJustification", enabledOptions, disabledOptions);
addOptionName(options.getWPSpaceWidth(), "WPSpaceWidth", enabledOptions, disabledOptions);
addOptionName(options.getWrapTrailSpaces(), "WrapTrailSpaces", enabledOptions, disabledOptions);
System.out.println("\tEnabled options:");
for (String optionName : enabledOptions)
System.out.println("\t\t{optionName}");
System.out.println("\tDisabled options:");
for (String optionName : disabledOptions)
System.out.println("\t\t{optionName}");
}
private static void addOptionName(boolean option, String optionName, ArrayList<String> enabledOptions, ArrayList<String> disabledOptions)
{
if (option)
enabledOptions.add(optionName);
else
disabledOptions.add(optionName);
}
| Modifier and Type | Field and Description |
|---|---|
static int |
ADJUST_LINE_HEIGHT_IN_TABLE
Adjust Line Height in Table
|
static int |
ALIGN_TABLE_ROW_BY_ROW
Align Table Rows by Rule
|
static int |
ALLOW_SPACE_OF_SAME_STYLE_IN_TABLE
Allow Space of Same Style in Table
|
static int |
APPLY_BREAKING_RULES
Apply Breaking Rules
|
static int |
AUTO_SPACE_LIKE_WORD_95
Auto Space Like Word 95
|
static int |
AUTOFIT_TO_FIRST_FIXED_WIDTH_CELL
AutoFit to First Fixed-Width Cell
|
static int |
BALANCE_SINGLE_BYTE_DOUBLE_BYTE_WIDTH
Balance Single-Byte and Double-Byte Widths
|
static int |
CACHED_COL_BALANCE
Cached Column Balancing
|
static int |
CONV_MAIL_MERGE_ESC
Convert Mail Merge Escapes
|
static int |
DISABLE_OPEN_TYPE_FONT_FORMATTING_FEATURES
Disable OpenType Font Formatting Features
|
static int |
DISPLAY_HANGUL_FIXED_WIDTH
Display Hangul Fixed Width
|
static int |
DO_NOT_AUTOFIT_CONSTRAINED_TABLES
Do Not AutoFit Constrained Tables
|
static int |
DO_NOT_BREAK_CONSTRAINED_FORCED_TABLE
Do Not Break Constrained Forced Tables
|
static int |
DO_NOT_BREAK_WRAPPED_TABLES
Do Not Break Wrapped Tables
|
static int |
DO_NOT_EXPAND_ON_SHIFT_RETURN
Do Not Expand on Shift Return
|
static int |
DO_NOT_LEAVE_BACKSLASH_ALONE
Do Not Leave Backslash Alone
|
static int |
DO_NOT_SNAP_TO_GRID_IN_CELL
Do Not Snap to Grid in Cells
|
static int |
DO_NOT_SUPPRESS_INDENTATION
Do Not Suppress Indentation
|
static int |
DO_NOT_SUPPRESS_PARAGRAPH_BORDER
Do Not Suppress Paragraph Border
|
static int |
DO_NOT_USE_EAST_ASIAN_BREAK_RULES
Do Not Use East Asian Break Rules
|
static int |
DO_NOT_USE_HTML_PARAGRAPH_AUTO_SPACING
Do Not Use HTML Paragraph Auto Spacing
|
static int |
DO_NOT_USE_INDENT_AS_NUMBERING_TAB_STOP
Do Not Use Indent as Numbering Tab Stop
|
static int |
DO_NOT_VERT_ALIGN_CELL_WITH_SP
Do Not Vertically Align Cell with Spacing
|
static int |
DO_NOT_VERT_ALIGN_IN_TXBX
Do Not Vertically Align in Textboxes
|
static int |
DO_NOT_WRAP_TEXT_WITH_PUNCT
Do Not Wrap Text with Punctuation
|
static int |
FOOTNOTE_LAYOUT_LIKE_WW_8
Footnote Layout Like Word 2000
|
static int |
FORGET_LAST_TAB_ALIGNMENT
Forget Last Tab Alignment
|
static int |
GROW_AUTOFIT
Grow AutoFit
|
static int |
LAYOUT_RAW_TABLE_WIDTH
Layout Raw Table Width
|
static int |
LAYOUT_TABLE_ROWS_APART
Layout Table Rows Apart
|
static int |
length |
static int |
LINE_WRAP_LIKE_WORD_6
Line Wrap Like Word 6
|
static int |
MW_SMALL_CAPS |
static int |
NO_COLUMN_BALANCE
No Column Balancing
|
static int |
NO_EXTRA_LINE_SPACING
No Extra Line Spacing
|
static int |
NO_LEADING
No Leading
|
static int |
NO_SPACE_RAISE_LOWER
No Space Raise Lower
|
static int |
NO_TAB_HANG_IND
No Tab Hang Indent
|
static int |
OVERRIDE_TABLE_STYLE_FONT_SIZE_AND_JUSTIFICATION
Override Table Style Font Size and Justification
|
static int |
PRINT_BODY_TEXT_BEFORE_HEADER
Print Body Text Before Header
|
static int |
PRINT_COL_BLACK
Print Column Background
|
static int |
SELECT_FLD_WITH_FIRST_OR_LAST_CHAR
Select Field with First or Last Character
|
static int |
SHAPE_LAYOUT_LIKE_WW_8
Shape Layout Like Word 2000
|
static int |
SHOW_BREAKS_IN_FRAMES
Show Breaks in Frames
|
static int |
SPACE_FOR_UL
Space for Underline
|
static int |
SPACING_IN_WHOLE_POINTS
Spacing in Whole Points
|
static int |
SPLIT_PG_BREAK_AND_PARA_MARK
Split Page Break and Paragraph Mark
|
static int |
SUB_FONT_BY_SIZE
Substitute Font by Size
|
static int |
SUPPRESS_BOTTOM_SPACING
Suppress Bottom Spacing
|
static int |
SUPPRESS_SP_BF_AFTER_PG_BRK
Suppress Space Before Paragraph Break
|
static int |
SUPPRESS_TOP_LINE_SPACING_WP
Suppress Top Line Spacing in WordPerfect
|
static int |
SUPPRESS_TOP_SPACING
Suppress Top Spacing
|
static int |
SUPPRESS_TOP_SPACING_AT_TOP_OF_PAGE
Suppress Top Line Spacing in WordPerfect
|
static int |
SWAP_BORDERS_ODD_FACING_PGS
Swap Borders on Odd-Facing Pages
|
static int |
SWAP_INSIDE_AND_OUTSIDE_FOR_MIRROR_INDENTS_AND_RELATIVE_POSITIONING
Swap Inside and Outside for Mirror Indents and Relative Positioning
|
static int |
TRANSPARENT_METAFILES
Transparent Metafiles
|
static int |
TRUNCATE_FONT_HEIGHT_LIKE_WP_6
Truncate Font Height Like WordPerfect 6
|
static int |
UI_COMPAT_97_TO_2003 |
static int |
UL_TRAIL_SPACE
Underline Trailing Space
|
static int |
UNDERLINE_TAB_IN_NUM_LIST
Underline Tab in Numbered List
|
static int |
USE_ALT_KINSOKU_LINE_BREAK_RULES
Use Alt Kinsoku Line Break Rules
|
static int |
USE_ANSI_KERNING_PAIRS
Use ANSI Kerning Pairs
|
static int |
USE_FE_LAYOUT |
static int |
USE_NORMAL_STYLE_FOR_LIST
Use Normal Style for List
|
static int |
USE_PRINTER_METRICS
Use Printer Metrics
|
static int |
USE_SINGLE_BORDERFOR_CONTIGUOUS_CELLS
Use Single Border for Contiguous Cells
|
static int |
USE_WORD_2002_TABLE_STYLE_RULES
Use Word 2002 Table Style Rules
|
static int |
USE_WORD_2010_TABLE_STYLE_RULES
Use Word 2010 Table Style Rules
|
static int |
USE_WORD_97_LINE_BREAK_RULES
Use Word 97 Line Break Rules
|
static int |
WP_JUSTIFICATION |
static int |
WP_SPACE_WIDTH |
static int |
WRAP_TRAIL_SPACES
Wrap Trailing Spaces
|
| Modifier and Type | Method and Description |
|---|---|
static int |
fromName(java.lang.String compatibilityName) |
static java.lang.String |
getName(int compatibility) |
static int[] |
getValues() |
static java.lang.String |
toString(int compatibility) |
public static int NO_TAB_HANG_IND
public static int NO_SPACE_RAISE_LOWER
public static int SUPPRESS_SP_BF_AFTER_PG_BRK
public static int WRAP_TRAIL_SPACES
public static int PRINT_COL_BLACK
public static int NO_COLUMN_BALANCE
public static int CONV_MAIL_MERGE_ESC
public static int SUPPRESS_TOP_SPACING
public static int USE_SINGLE_BORDERFOR_CONTIGUOUS_CELLS
public static int TRANSPARENT_METAFILES
public static int SHOW_BREAKS_IN_FRAMES
public static int SWAP_BORDERS_ODD_FACING_PGS
public static int DO_NOT_LEAVE_BACKSLASH_ALONE
public static int DO_NOT_EXPAND_ON_SHIFT_RETURN
public static int UL_TRAIL_SPACE
public static int BALANCE_SINGLE_BYTE_DOUBLE_BYTE_WIDTH
public static int SUPPRESS_TOP_SPACING_AT_TOP_OF_PAGE
public static int SPACING_IN_WHOLE_POINTS
public static int PRINT_BODY_TEXT_BEFORE_HEADER
public static int NO_LEADING
public static int SPACE_FOR_UL
public static int MW_SMALL_CAPS
public static int SUPPRESS_TOP_LINE_SPACING_WP
public static int TRUNCATE_FONT_HEIGHT_LIKE_WP_6
public static int SUB_FONT_BY_SIZE
public static int LINE_WRAP_LIKE_WORD_6
public static int DO_NOT_SUPPRESS_PARAGRAPH_BORDER
public static int NO_EXTRA_LINE_SPACING
public static int SUPPRESS_BOTTOM_SPACING
public static int WP_SPACE_WIDTH
public static int WP_JUSTIFICATION
public static int USE_PRINTER_METRICS
public static int SHAPE_LAYOUT_LIKE_WW_8
public static int FOOTNOTE_LAYOUT_LIKE_WW_8
public static int DO_NOT_USE_HTML_PARAGRAPH_AUTO_SPACING
public static int ADJUST_LINE_HEIGHT_IN_TABLE
public static int FORGET_LAST_TAB_ALIGNMENT
public static int AUTO_SPACE_LIKE_WORD_95
public static int ALIGN_TABLE_ROW_BY_ROW
public static int LAYOUT_RAW_TABLE_WIDTH
public static int LAYOUT_TABLE_ROWS_APART
public static int USE_WORD_97_LINE_BREAK_RULES
public static int DO_NOT_BREAK_WRAPPED_TABLES
public static int DO_NOT_SNAP_TO_GRID_IN_CELL
public static int SELECT_FLD_WITH_FIRST_OR_LAST_CHAR
public static int APPLY_BREAKING_RULES
public static int DO_NOT_WRAP_TEXT_WITH_PUNCT
public static int DO_NOT_USE_EAST_ASIAN_BREAK_RULES
public static int USE_WORD_2002_TABLE_STYLE_RULES
public static int GROW_AUTOFIT
public static int USE_NORMAL_STYLE_FOR_LIST
public static int DO_NOT_USE_INDENT_AS_NUMBERING_TAB_STOP
public static int USE_ALT_KINSOKU_LINE_BREAK_RULES
public static int ALLOW_SPACE_OF_SAME_STYLE_IN_TABLE
public static int DO_NOT_SUPPRESS_INDENTATION
public static int DO_NOT_AUTOFIT_CONSTRAINED_TABLES
public static int AUTOFIT_TO_FIRST_FIXED_WIDTH_CELL
public static int UNDERLINE_TAB_IN_NUM_LIST
public static int DISPLAY_HANGUL_FIXED_WIDTH
public static int SPLIT_PG_BREAK_AND_PARA_MARK
public static int DO_NOT_VERT_ALIGN_CELL_WITH_SP
public static int DO_NOT_BREAK_CONSTRAINED_FORCED_TABLE
public static int DO_NOT_VERT_ALIGN_IN_TXBX
public static int USE_ANSI_KERNING_PAIRS
public static int CACHED_COL_BALANCE
public static int USE_FE_LAYOUT
public static int UI_COMPAT_97_TO_2003
public static int OVERRIDE_TABLE_STYLE_FONT_SIZE_AND_JUSTIFICATION
public static int DISABLE_OPEN_TYPE_FONT_FORMATTING_FEATURES
public static int SWAP_INSIDE_AND_OUTSIDE_FOR_MIRROR_INDENTS_AND_RELATIVE_POSITIONING
public static int USE_WORD_2010_TABLE_STYLE_RULES
public static int length