Seguimiento del progreso de conversión de documentos

Escenarios de uso posibles

A veces, convertir archivos grandes de Excel puede llevar algo de tiempo. Durante este tiempo, es posible que desees mostrar el progreso de la conversión del documento en lugar de simplemente una pantalla de carga para mejorar la usabilidad de tu aplicación. Aspose.Cells admite el seguimiento del proceso de conversión del documento proporcionando la interfaz IPageSavingCallback. La interfaz IPageSavingCallback proporciona los métodos PageStartSaving y PageEndSaving que puedes implementar en tu clase personalizada. También puedes controlar qué páginas se renderizan, como se demuestra en la clase personalizada TestPageSavingCallback.

Seguimiento del progreso de conversión de documentos

El siguiente ejemplo de código carga el archivo de Excel fuente e imprime su progreso de conversión en la consola mediante la clase personalizada TestPageSavingCallback que implementa la interfaz IPageSavingCallback.

Código de muestra

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
//Source directory
string sourceDir = RunExamples.Get_SourceDirectory();
//Output directory
string outputDir = RunExamples.Get_OutputDirectory();
Workbook workbook = new Workbook(sourceDir + "PagesBook1.xlsx");
PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
pdfSaveOptions.PageSavingCallback = new TestPageSavingCallback();
workbook.Save(outputDir + "DocumentConversionProgress.pdf", pdfSaveOptions);

El siguiente es el código para la clase personalizada TestPageSavingCallback.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
public class TestPageSavingCallback : IPageSavingCallback
{
public void PageStartSaving(PageStartSavingArgs args)
{
Console.WriteLine("Start saving page index {0} of pages {1}", args.PageIndex, args.PageCount);
//don't output pages before page index 2.
if (args.PageIndex < 2)
{
args.IsToOutput = false;
}
}
public void PageEndSaving(PageEndSavingArgs args)
{
Console.WriteLine("End saving page index {0} of pages {1}", args.PageIndex, args.PageCount);
//don't output pages after page index 8.
if (args.PageIndex >= 8)
{
args.HasMorePages = false;
}
}
}

Salida de la consola

Start saving page index 0 of pages 11</br>
End saving page index 0 of pages 11</br>
Start saving page index 1 of pages 11</br>
End saving page index 1 of pages 11</br>
Start saving page index 2 of pages 11</br>
End saving page index 2 of pages 11</br>
Start saving page index 3 of pages 11</br>
End saving page index 3 of pages 11</br>
Start saving page index 4 of pages 11</br>
End saving page index 4 of pages 11</br>
Start saving page index 5 of pages 11</br>
End saving page index 5 of pages 11</br>
Start saving page index 6 of pages 11</br>
End saving page index 6 of pages 11</br>
Start saving page index 7 of pages 11</br>
End saving page index 7 of pages 11</br>
Start saving page index 8 of pages 11</br>
End saving page index 8 of pages 11