Vista previa del libro de trabajo con JavaScript a través de C++

Vista previa de impresión

Puede haber casos donde archivos de Excel con millones de páginas necesiten convertirse a PDF o imágenes. Procesar estos archivos consumirá mucho tiempo y recursos. En tales casos, la función de vista previa de impresión de Libro y hoja puede ser útil. Antes de convertir estos archivos, el usuario puede verificar el total de páginas y decidir si convertir o no. Este artículo se enfoca en usar las clases WorkbookPrintingPreview y SheetPrintingPreview para averiguar el total de páginas.

Aspose.Cells ofrece la función de vista previa de impresión. Para ello, la API proporciona las clases WorkbookPrintingPreview y SheetPrintingPreview. Para crear la vista previa de todo el libro de trabajo, crea una instancia de la clase WorkbookPrintingPreview pasando los objetos Workbook y ImageOrPrintOptions al constructor. La clase WorkbookPrintingPreview proporciona un método evaluatedPageCount que devuelve el número de páginas en la vista previa generada. Similar a la clase WorkbookPrintingPreview, la clase SheetPrintingPreview se usa para generar una vista previa de impresión para una hoja de trabajo específica. Para crear la vista previa de una hoja, crea una instancia de la clase SheetPrintingPreview pasando los objetos Worksheet y ImageOrPrintOptions al constructor. La clase SheetPrintingPreview también proporciona un método evaluatedPageCount que devuelve el número de páginas en la vista previa generada.

El siguiente fragmento de código demuestra el uso de las clases WorkbookPrintingPreview y SheetPrintingPreview usando el archivo de Excel de ejemplo.

Código de muestra

<!DOCTYPE html>
<html>
    <head>
        <title>Aspose.Cells Example - Printing Preview</title>
    </head>
    <body>
        <h1>Printing Preview Example</h1>
        <input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
        <button id="runExample">Run Example</button>
        <a id="downloadLink" style="display: none;">Download Result</a>
        <div id="result"></div>
    </body>

    <script src="aspose.cells.js.min.js"></script>
    <script type="text/javascript">
        const { Workbook, ImageOrPrintOptions, WorkbookPrintingPreview, SheetPrintingPreview } = AsposeCells;

        AsposeCells.onReady({
            license: "/lic/aspose.cells.enc",
            fontPath: "/fonts/",
            fontList: [
                "arial.ttf",
                "NotoSansSC-Regular.ttf"
            ]
        }).then(() => {
            console.log("Aspose.Cells initialized");
        });

        document.getElementById('runExample').addEventListener('click', async () => {
            const fileInput = document.getElementById('fileInput');
            if (!fileInput.files.length) {
                document.getElementById('result').innerHTML = '<p style="color: red;">Please select an Excel file.</p>';
                return;
            }

            const file = fileInput.files[0];
            const arrayBuffer = await file.arrayBuffer();

            // Instantiating a Workbook object from the uploaded file
            const workbook = new Workbook(new Uint8Array(arrayBuffer));

            // Creating image/print options
            const imgOptions = new ImageOrPrintOptions();

            // Workbook printing preview
            const preview = new WorkbookPrintingPreview(workbook, imgOptions);
            const workbookPageCount = preview.evaluatedPageCount;
            console.log("Workbook page count: " + workbookPageCount);

            // Worksheet printing preview for first worksheet
            const preview2 = new SheetPrintingPreview(workbook.worksheets.get(0), imgOptions);
            const worksheetPageCount = preview2.evaluatedPageCount;
            console.log("Worksheet page count: " + worksheetPageCount);

            document.getElementById('result').innerHTML = `<p>Workbook page count: ${workbookPageCount}</p><p>Worksheet page count: ${worksheetPageCount}</p>`;
        });
    </script>
</html>

A continuación se muestra la salida generada al ejecutar el código anterior.

Salida de la consola

  
Workbook page count: 1  
Worksheet page count: 1  

Temas avanzados