Office.GetFileOptions interface

Oferece opções para definir o tamanho das fatias nas quais o documento será dividido.

Comentários

Usada por

Exemplos

// The following example gets the document in Office Open XML ("compressed") format in 65536 bytes (64 KB) slices.
function getDocumentAsCompressed() {
    let fileOptions: Office.GetFileOptions = {
        sliceSize: 65536 /*64 KB*/
    };
    Office.context.document.getFileAsync(Office.FileType.Compressed, fileOptions,
        function (result) {
            if (result.status === Office.AsyncResultStatus.Succeeded) {
                // If the getFileAsync call succeeded, then
                // result.value will return a valid File Object.
                const myFile = result.value;
                const sliceCount = myFile.sliceCount;
                const docDataSlices = [];
                let slicesReceived = 0, gotAllSlices = true;
                console.log("File size:" + myFile.size + " #Slices: " + sliceCount);

                // Get the file slices.
                getSliceAsync(myFile, 0, sliceCount, gotAllSlices, docDataSlices, slicesReceived);
            } else {
                console.error("Error:", result.error.message);
            }
    });
}

function getSliceAsync(file, nextSlice, sliceCount, gotAllSlices, docDataSlices, slicesReceived) {
    file.getSliceAsync(nextSlice, function (sliceResult) {
        if (sliceResult.status === Office.AsyncResultStatus.Succeeded) {
            if (!gotAllSlices) { /* Failed to get all slices, no need to continue. */
                return;
            }

            // Got one slice, store it in a temporary array.
            // (Or you can do something else, such as
            // send it to a third-party server.)
            docDataSlices[sliceResult.value.index] = sliceResult.value.data;
            if (++slicesReceived === sliceCount) {
              // All slices have been received.
              file.closeAsync();
              onGotAllSlices(docDataSlices);
            }
            else {
                getSliceAsync(file, ++nextSlice, sliceCount, gotAllSlices, docDataSlices, slicesReceived);
            }
        } else {
            gotAllSlices = false;
            file.closeAsync();
            console.error("getSliceAsync Error:", sliceResult.error.message);
        }
    });
}

function onGotAllSlices(docDataSlices) {
    let docData = [];
    for (let i = 0; i < docDataSlices.length; i++) {
        docData = docData.concat(docDataSlices[i]);
    }

    let fileContent = new String();
    for (let j = 0; j < docData.length; j++) {
        fileContent += String.fromCharCode(docData[j]);
    }

    // Now all the file content is stored in 'fileContent' variable,
    // you can do something with it, such as print, fax...
}

// The following example gets the document in PDF format.
Office.context.document.getFileAsync(Office.FileType.Pdf,
    function(result) {
        if (result.status === Office.AsyncResultStatus.Succeeded) {
            const myFile = result.value;
            const sliceCount = myFile.sliceCount;
            console.log("File size:" + myFile.size + " #Slices: " + sliceCount);

            // Get the file slices.
            const docDataSlices = [];
            let slicesReceived = 0, gotAllSlices = true;
            getSliceAsync(myFile, 0, sliceCount, gotAllSlices, docDataSlices, slicesReceived);
            
            myFile.closeAsync();
        } else {
            console.error("Error:", result.error.message);
        }
    }
);

Propriedades

asyncContext

Um item definido pelo usuário de qualquer tipo que é retornado, inalterado, na propriedade asyncContext do objeto AsyncResult que é passado para um retorno de chamada.

sliceSize

O tamanho das fatias, em bytes. O máximo (e o padrão) é 4194304 (4 MB).

Detalhes da propriedade

asyncContext

Um item definido pelo usuário de qualquer tipo que é retornado, inalterado, na propriedade asyncContext do objeto AsyncResult que é passado para um retorno de chamada.

asyncContext?: any

Valor da propriedade

any

sliceSize

O tamanho das fatias, em bytes. O máximo (e o padrão) é 4194304 (4 MB).

sliceSize?: number

Valor da propriedade

number