com.aspose.words

Class FileFormatInfo

  • java.lang.Object
    • com.aspose.words.FileFormatInfo
public class FileFormatInfo 
extends java.lang.Object

Contains data returned by FileFormatUtil document format detection methods.

You do not create instances of this class directly. Objects of this class are returned by FileFormatUtil.detectFileFormat(java.io.InputStream) methods.

Example:

Shows how to use the FileFormatUtil class to detect the document format and encryption.
Document doc = new Document();

// Configure a SaveOptions object to encrypt the document
// with a password when we save it, and then save the document.
OdtSaveOptions saveOptions = new OdtSaveOptions(SaveFormat.ODT);
saveOptions.setPassword("MyPassword");

doc.save(getArtifactsDir() + "File.DetectDocumentEncryption.odt", saveOptions);

// Verify the file type of our document, and its encryption status.
FileFormatInfo info = FileFormatUtil.detectFileFormat(getArtifactsDir() + "File.DetectDocumentEncryption.odt");

Assert.assertEquals(".odt", FileFormatUtil.loadFormatToExtension(info.getLoadFormat()));
Assert.assertTrue(info.isEncrypted());

Example:

Shows how to use the FileFormatUtil class to detect the document format and presence of digital signatures.
// Use a FileFormatInfo instance to verify that a document is not digitally signed.
FileFormatInfo info = FileFormatUtil.detectFileFormat(getMyDir() + "Document.docx");

Assert.assertEquals(".docx", FileFormatUtil.loadFormatToExtension(info.getLoadFormat()));
Assert.assertFalse(info.hasDigitalSignature());

CertificateHolder certificateHolder = CertificateHolder.create(getMyDir() + "morzal.pfx", "aw", null);
DigitalSignatureUtil.sign(getMyDir() + "Document.docx", getArtifactsDir() + "File.DetectDigitalSignatures.docx",
        certificateHolder);

// Use a new FileFormatInstance to confirm that it is signed.
info = FileFormatUtil.detectFileFormat(getArtifactsDir() + "File.DetectDigitalSignatures.docx");

Assert.assertTrue(info.hasDigitalSignature());

// We can load and access the signatures of a signed document in a collection like this.
Assert.assertEquals(1, DigitalSignatureUtil.loadSignatures(getArtifactsDir() + "File.DetectDigitalSignatures.docx").getCount());

Property Getters/Setters Summary
java.nio.charset.CharsetgetEncoding()
Gets the detected encoding if applicable to the current document format. At the moment detects encoding only for HTML documents.
booleanhasDigitalSignature()
Returns true if this document contains a digital signature. This property merely informs that a digital signature is present on a document, but it does not specify whether the signature is valid or not.
booleanisEncrypted()
Returns true if the document is encrypted and requires a password to open.
intgetLoadFormat()
Gets the detected document format. The value of the property is LoadFormat integer constant.
 

    • Property Getters/Setters Detail

      • getEncoding

        public java.nio.charset.Charset getEncoding()
        
        Gets the detected encoding if applicable to the current document format. At the moment detects encoding only for HTML documents.

        Example:

        Shows how to detect encoding in an html file.
        FileFormatInfo info = FileFormatUtil.detectFileFormat(getMyDir() + "Document.html");
        
        Assert.assertEquals(LoadFormat.HTML, info.getLoadFormat());
        
        // The Encoding property is used only when we create a FileFormatInfo object for an html document.
        Assert.assertEquals("windows-1252", info.getEncoding().name());
      • hasDigitalSignature

        public boolean hasDigitalSignature()
        
        Returns true if this document contains a digital signature. This property merely informs that a digital signature is present on a document, but it does not specify whether the signature is valid or not.

        This property exists to help you sort documents that are digitally signed from those that are not. If you use Aspose.Words to modify and save a document that is digitally signed, then the digital signature will be lost. This is by design because a digital signature exists to guard the authenticity of a document. Using this property you can detect digitally signed documents before processing them in the same way as normal documents and take some action to avoid losing the digital signature, for example notify the user.

        Example:

        Shows how to use the FileFormatUtil class to detect the document format and presence of digital signatures.
        // Use a FileFormatInfo instance to verify that a document is not digitally signed.
        FileFormatInfo info = FileFormatUtil.detectFileFormat(getMyDir() + "Document.docx");
        
        Assert.assertEquals(".docx", FileFormatUtil.loadFormatToExtension(info.getLoadFormat()));
        Assert.assertFalse(info.hasDigitalSignature());
        
        CertificateHolder certificateHolder = CertificateHolder.create(getMyDir() + "morzal.pfx", "aw", null);
        DigitalSignatureUtil.sign(getMyDir() + "Document.docx", getArtifactsDir() + "File.DetectDigitalSignatures.docx",
                certificateHolder);
        
        // Use a new FileFormatInstance to confirm that it is signed.
        info = FileFormatUtil.detectFileFormat(getArtifactsDir() + "File.DetectDigitalSignatures.docx");
        
        Assert.assertTrue(info.hasDigitalSignature());
        
        // We can load and access the signatures of a signed document in a collection like this.
        Assert.assertEquals(1, DigitalSignatureUtil.loadSignatures(getArtifactsDir() + "File.DetectDigitalSignatures.docx").getCount());
      • isEncrypted

        public boolean isEncrypted()
        
        Returns true if the document is encrypted and requires a password to open.

        This property exists to help you sort documents that are encrypted from those that are not. If you attempt to load an encrypted document using Aspose.Words without supplying a password an exception will be thrown. You can use this property to detect whether a document requires a password and take some action before loading a document, for example, prompt the user for a password.

        Example:

        Shows how to use the FileFormatUtil class to detect the document format and encryption.
        Document doc = new Document();
        
        // Configure a SaveOptions object to encrypt the document
        // with a password when we save it, and then save the document.
        OdtSaveOptions saveOptions = new OdtSaveOptions(SaveFormat.ODT);
        saveOptions.setPassword("MyPassword");
        
        doc.save(getArtifactsDir() + "File.DetectDocumentEncryption.odt", saveOptions);
        
        // Verify the file type of our document, and its encryption status.
        FileFormatInfo info = FileFormatUtil.detectFileFormat(getArtifactsDir() + "File.DetectDocumentEncryption.odt");
        
        Assert.assertEquals(".odt", FileFormatUtil.loadFormatToExtension(info.getLoadFormat()));
        Assert.assertTrue(info.isEncrypted());
        See Also:
        LoadFormat
      • getLoadFormat

        public int getLoadFormat()
        
        Gets the detected document format. The value of the property is LoadFormat integer constant.

        When an OOXML document is encrypted, it is not possible to ascertained whether it is an Excel, Word or PowerPoint document without decrypting it first so for an encrypted OOXML document this property will always return LoadFormat.DOCX.

        Example:

        Shows how to use the FileFormatUtil class to detect the document format and encryption.
        Document doc = new Document();
        
        // Configure a SaveOptions object to encrypt the document
        // with a password when we save it, and then save the document.
        OdtSaveOptions saveOptions = new OdtSaveOptions(SaveFormat.ODT);
        saveOptions.setPassword("MyPassword");
        
        doc.save(getArtifactsDir() + "File.DetectDocumentEncryption.odt", saveOptions);
        
        // Verify the file type of our document, and its encryption status.
        FileFormatInfo info = FileFormatUtil.detectFileFormat(getArtifactsDir() + "File.DetectDocumentEncryption.odt");
        
        Assert.assertEquals(".odt", FileFormatUtil.loadFormatToExtension(info.getLoadFormat()));
        Assert.assertTrue(info.isEncrypted());

        Example:

        Shows how to use the FileFormatUtil class to detect the document format and presence of digital signatures.
        // Use a FileFormatInfo instance to verify that a document is not digitally signed.
        FileFormatInfo info = FileFormatUtil.detectFileFormat(getMyDir() + "Document.docx");
        
        Assert.assertEquals(".docx", FileFormatUtil.loadFormatToExtension(info.getLoadFormat()));
        Assert.assertFalse(info.hasDigitalSignature());
        
        CertificateHolder certificateHolder = CertificateHolder.create(getMyDir() + "morzal.pfx", "aw", null);
        DigitalSignatureUtil.sign(getMyDir() + "Document.docx", getArtifactsDir() + "File.DetectDigitalSignatures.docx",
                certificateHolder);
        
        // Use a new FileFormatInstance to confirm that it is signed.
        info = FileFormatUtil.detectFileFormat(getArtifactsDir() + "File.DetectDigitalSignatures.docx");
        
        Assert.assertTrue(info.hasDigitalSignature());
        
        // We can load and access the signatures of a signed document in a collection like this.
        Assert.assertEquals(1, DigitalSignatureUtil.loadSignatures(getArtifactsDir() + "File.DetectDigitalSignatures.docx").getCount());

        Example:

        Shows how to use the FileFormatUtil methods to detect the format of a document.
        // Load a document from a file that is missing a file extension, and then detect its file format.
        FileInputStream docStream = new FileInputStream(getMyDir() + "Word document with missing file extension");
        
        FileFormatInfo info = FileFormatUtil.detectFileFormat(docStream);
        /*LoadFormat*/
        int loadFormat = info.getLoadFormat();
        
        Assert.assertEquals(LoadFormat.DOC, loadFormat);
        
        // Below are two methods of converting a LoadFormat to its corresponding SaveFormat.
        // 1 -  Get the file extension string for the LoadFormat, then get the corresponding SaveFormat from that string:
        String fileExtension = FileFormatUtil.loadFormatToExtension(loadFormat);
        /*SaveFormat*/
        int saveFormat = FileFormatUtil.extensionToSaveFormat(fileExtension);
        
        // 2 -  Convert the LoadFormat directly to its SaveFormat:
        saveFormat = FileFormatUtil.loadFormatToSaveFormat(loadFormat);
        
        // Load a document from the stream, and then save it to the automatically detected file extension.
        Document doc = new Document(docStream);
        
        Assert.assertEquals(".doc", FileFormatUtil.saveFormatToExtension(saveFormat));
        
        doc.save(getArtifactsDir() + "File.SaveToDetectedFileFormat" + FileFormatUtil.saveFormatToExtension(saveFormat));
        See Also:
        IsEncrypted