com.aspose.words

Class WarningInfoCollection

  • java.lang.Object
    • com.aspose.words.WarningInfoCollection
  • All Implemented Interfaces:
    IWarningCallback, java.lang.Iterable
    public class WarningInfoCollection 
    extends java.lang.Object

Represents a typed collection of WarningInfo objects.

You can use this collection object as the simplest form of IWarningCallback implementation to gather all warnings that Aspose.Words generates during a load or save operation. Create an instance of this class and assign it to the LoadOptions.WarningCallback or DocumentBase.WarningCallback property.

Example:

Shows how to set the property for finding the closest match for a missing font from the available font sources.
@Test
public void enableFontSubstitution() throws Exception {
    // Open a document that contains text formatted with a font that does not exist in any of our font sources.
    Document doc = new Document(getMyDir() + "Missing font.docx");

    // Assign a callback for handling font substitution warnings.
    HandleDocumentSubstitutionWarnings substitutionWarningHandler = new HandleDocumentSubstitutionWarnings();
    doc.setWarningCallback(substitutionWarningHandler);

    // Set a default font name and enable font substitution.
    FontSettings fontSettings = new FontSettings();
    fontSettings.getSubstitutionSettings().getDefaultFontSubstitution().setDefaultFontName("Arial");
    fontSettings.getSubstitutionSettings().getFontInfoSubstitution().setEnabled(true);

    // We will get a font substitution warning if we save a document with a missing font.
    doc.setFontSettings(fontSettings);
    doc.save(getArtifactsDir() + "FontSettings.EnableFontSubstitution.pdf");

    Iterator<WarningInfo> warnings = substitutionWarningHandler.FontWarnings.iterator();

    while (warnings.hasNext())
        System.out.println(warnings.next().getDescription());

    // We can also verify warnings in the collection and clear them.
    Assert.assertEquals(WarningSource.LAYOUT, substitutionWarningHandler.FontWarnings.get(0).getSource());
    Assert.assertEquals("Font '28 Days Later' has not been found. Using 'Calibri' font instead. Reason: alternative name from document.",
            substitutionWarningHandler.FontWarnings.get(0).getDescription());

    substitutionWarningHandler.FontWarnings.clear();

    Assert.assertTrue(substitutionWarningHandler.FontWarnings.getCount() == 0);
}

public static class HandleDocumentSubstitutionWarnings implements IWarningCallback {
    /// <summary>
    /// Called every time a warning occurs during loading/saving.
    /// </summary>
    public void warning(WarningInfo info) {
        if (info.getWarningType() == WarningType.FONT_SUBSTITUTION)
            FontWarnings.warning(info);
    }

    public WarningInfoCollection FontWarnings = new WarningInfoCollection();
}
See Also:
WarningInfo, IWarningCallback

Constructor Summary
 
Property Getters/Setters Summary
intgetCount()
Gets the number of elements contained in the collection.
WarningInfoget(int index)
Gets an item at the specified index.
 
Method Summary
voidclear()
Removes all elements from the collection.
java.util.Iterator<WarningInfo>iterator()
Returns an iterator object that can be used to iterate over all items in the collection.
voidwarning(WarningInfo info)
Implements the IWarningCallback interface. Adds a warning to this collection.
 

    • Constructor Detail

      • WarningInfoCollection

        public WarningInfoCollection()
    • Property Getters/Setters Detail

      • getCount

        public int getCount()
        
        Gets the number of elements contained in the collection.
      • get

        public WarningInfo get(int index)
        
        Gets an item at the specified index.
        Parameters:
        index - Zero-based index of the item.
    • Method Detail

      • clear

        public void clear()
        Removes all elements from the collection.

        Example:

        Shows how to set the property for finding the closest match for a missing font from the available font sources.
        @Test
        public void enableFontSubstitution() throws Exception {
            // Open a document that contains text formatted with a font that does not exist in any of our font sources.
            Document doc = new Document(getMyDir() + "Missing font.docx");
        
            // Assign a callback for handling font substitution warnings.
            HandleDocumentSubstitutionWarnings substitutionWarningHandler = new HandleDocumentSubstitutionWarnings();
            doc.setWarningCallback(substitutionWarningHandler);
        
            // Set a default font name and enable font substitution.
            FontSettings fontSettings = new FontSettings();
            fontSettings.getSubstitutionSettings().getDefaultFontSubstitution().setDefaultFontName("Arial");
            fontSettings.getSubstitutionSettings().getFontInfoSubstitution().setEnabled(true);
        
            // We will get a font substitution warning if we save a document with a missing font.
            doc.setFontSettings(fontSettings);
            doc.save(getArtifactsDir() + "FontSettings.EnableFontSubstitution.pdf");
        
            Iterator<WarningInfo> warnings = substitutionWarningHandler.FontWarnings.iterator();
        
            while (warnings.hasNext())
                System.out.println(warnings.next().getDescription());
        
            // We can also verify warnings in the collection and clear them.
            Assert.assertEquals(WarningSource.LAYOUT, substitutionWarningHandler.FontWarnings.get(0).getSource());
            Assert.assertEquals("Font '28 Days Later' has not been found. Using 'Calibri' font instead. Reason: alternative name from document.",
                    substitutionWarningHandler.FontWarnings.get(0).getDescription());
        
            substitutionWarningHandler.FontWarnings.clear();
        
            Assert.assertTrue(substitutionWarningHandler.FontWarnings.getCount() == 0);
        }
        
        public static class HandleDocumentSubstitutionWarnings implements IWarningCallback {
            /// <summary>
            /// Called every time a warning occurs during loading/saving.
            /// </summary>
            public void warning(WarningInfo info) {
                if (info.getWarningType() == WarningType.FONT_SUBSTITUTION)
                    FontWarnings.warning(info);
            }
        
            public WarningInfoCollection FontWarnings = new WarningInfoCollection();
        }
      • iterator

        public java.util.Iterator<WarningInfo> iterator()
        Returns an iterator object that can be used to iterate over all items in the collection.

        Example:

        Shows how to set the property for finding the closest match for a missing font from the available font sources.
        @Test
        public void enableFontSubstitution() throws Exception {
            // Open a document that contains text formatted with a font that does not exist in any of our font sources.
            Document doc = new Document(getMyDir() + "Missing font.docx");
        
            // Assign a callback for handling font substitution warnings.
            HandleDocumentSubstitutionWarnings substitutionWarningHandler = new HandleDocumentSubstitutionWarnings();
            doc.setWarningCallback(substitutionWarningHandler);
        
            // Set a default font name and enable font substitution.
            FontSettings fontSettings = new FontSettings();
            fontSettings.getSubstitutionSettings().getDefaultFontSubstitution().setDefaultFontName("Arial");
            fontSettings.getSubstitutionSettings().getFontInfoSubstitution().setEnabled(true);
        
            // We will get a font substitution warning if we save a document with a missing font.
            doc.setFontSettings(fontSettings);
            doc.save(getArtifactsDir() + "FontSettings.EnableFontSubstitution.pdf");
        
            Iterator<WarningInfo> warnings = substitutionWarningHandler.FontWarnings.iterator();
        
            while (warnings.hasNext())
                System.out.println(warnings.next().getDescription());
        
            // We can also verify warnings in the collection and clear them.
            Assert.assertEquals(WarningSource.LAYOUT, substitutionWarningHandler.FontWarnings.get(0).getSource());
            Assert.assertEquals("Font '28 Days Later' has not been found. Using 'Calibri' font instead. Reason: alternative name from document.",
                    substitutionWarningHandler.FontWarnings.get(0).getDescription());
        
            substitutionWarningHandler.FontWarnings.clear();
        
            Assert.assertTrue(substitutionWarningHandler.FontWarnings.getCount() == 0);
        }
        
        public static class HandleDocumentSubstitutionWarnings implements IWarningCallback {
            /// <summary>
            /// Called every time a warning occurs during loading/saving.
            /// </summary>
            public void warning(WarningInfo info) {
                if (info.getWarningType() == WarningType.FONT_SUBSTITUTION)
                    FontWarnings.warning(info);
            }
        
            public WarningInfoCollection FontWarnings = new WarningInfoCollection();
        }
      • warning

        public void warning(WarningInfo info)
        Implements the IWarningCallback interface. Adds a warning to this collection.

        Example:

        Shows how to set the property for finding the closest match for a missing font from the available font sources.
        @Test
        public void enableFontSubstitution() throws Exception {
            // Open a document that contains text formatted with a font that does not exist in any of our font sources.
            Document doc = new Document(getMyDir() + "Missing font.docx");
        
            // Assign a callback for handling font substitution warnings.
            HandleDocumentSubstitutionWarnings substitutionWarningHandler = new HandleDocumentSubstitutionWarnings();
            doc.setWarningCallback(substitutionWarningHandler);
        
            // Set a default font name and enable font substitution.
            FontSettings fontSettings = new FontSettings();
            fontSettings.getSubstitutionSettings().getDefaultFontSubstitution().setDefaultFontName("Arial");
            fontSettings.getSubstitutionSettings().getFontInfoSubstitution().setEnabled(true);
        
            // We will get a font substitution warning if we save a document with a missing font.
            doc.setFontSettings(fontSettings);
            doc.save(getArtifactsDir() + "FontSettings.EnableFontSubstitution.pdf");
        
            Iterator<WarningInfo> warnings = substitutionWarningHandler.FontWarnings.iterator();
        
            while (warnings.hasNext())
                System.out.println(warnings.next().getDescription());
        
            // We can also verify warnings in the collection and clear them.
            Assert.assertEquals(WarningSource.LAYOUT, substitutionWarningHandler.FontWarnings.get(0).getSource());
            Assert.assertEquals("Font '28 Days Later' has not been found. Using 'Calibri' font instead. Reason: alternative name from document.",
                    substitutionWarningHandler.FontWarnings.get(0).getDescription());
        
            substitutionWarningHandler.FontWarnings.clear();
        
            Assert.assertTrue(substitutionWarningHandler.FontWarnings.getCount() == 0);
        }
        
        public static class HandleDocumentSubstitutionWarnings implements IWarningCallback {
            /// <summary>
            /// Called every time a warning occurs during loading/saving.
            /// </summary>
            public void warning(WarningInfo info) {
                if (info.getWarningType() == WarningType.FONT_SUBSTITUTION)
                    FontWarnings.warning(info);
            }
        
            public WarningInfoCollection FontWarnings = new WarningInfoCollection();
        }