Office.GetFileOptions interface

Proporciona opciones para establecer el tamaño de las rebanadas en que se dividirá el documento.

Comentarios

Usada por

Ejemplos

// 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);
        }
    }
);

Propiedades

asyncContext

Un elemento definido por el usuario de cualquier tipo que se devuelve, sin cambios, en la propiedad asyncContext del objeto AsyncResult que se pasa a una devolución de llamada.

sliceSize

El tamaño de las rebanadas, en bytes. El máximo (y el valor predeterminado) es 4194304 (4 MB).

Detalles de las propiedades

asyncContext

Un elemento definido por el usuario de cualquier tipo que se devuelve, sin cambios, en la propiedad asyncContext del objeto AsyncResult que se pasa a una devolución de llamada.

asyncContext?: any

Valor de propiedad

any

sliceSize

El tamaño de las rebanadas, en bytes. El máximo (y el valor predeterminado) es 4194304 (4 MB).

sliceSize?: number

Valor de propiedad

number