Отслеживание процесса преобразования документа
Возможные сценарии использования
Иногда преобразование больших файлов Excel может занять некоторое время. В это время вы можете захотеть показать ход преобразования документа, а не просто экран загрузки, чтобы повысить удобство использования вашего приложения. Aspose.Cells поддерживает процесс преобразования документа отслеживания, предоставляя**IPageSavingCallback** интерфейс.**IPageSavingCallback**интерфейс обеспечивает**PageStartSaving**и**PageEndSaving**методы, которые вы можете реализовать в своем пользовательском классе. Вы также можете контролировать, какие страницы отображаются, как показано в T*estPageSavingCallback*пользовательский класс.
Отслеживание процесса преобразования документа
Следующий пример кода загружаетисходный файл excel и выводит ход преобразования в консоли с помощью командыTestPageSavingCallback пользовательский класс, который реализует**IPageSavingCallback**интерфейс.
Образец кода
// 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); |
Ниже приведен код для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; | |
} | |
} | |
} |
Консольный вывод
Начать сохранение индекса страницы 0 из страниц 11
Завершить сохранение индекса страницы 0 из страниц 11
Начать сохранение индекса страницы 1 из страниц 11
Завершить сохранение индекса страницы 1 из страниц 11
Начать сохранение указателя страниц 2 со страниц 11
Завершить сохранение указателя страниц 2 из страниц 11
Начать сохранение указателя страницы 3 из страниц 11
Завершить сохранение указателя страниц 3 из страниц 11
Начать сохранение указателя страниц 4 из страниц 11
Завершить сохранение указателя страниц 4 из страниц 11
Начать сохранение индекса страницы 5 из страниц 11
Завершить сохранение индекса страницы 5 из страниц 11
Начать сохранение указателя страницы 6 из страниц 11
Завершить сохранение указателя 6 страницы из 11
Начать сохранение индекса страницы 7 из страниц 11
Завершить сохранение оглавления страницы 7 из страниц 11
Начать сохранение указателя страницы 8 из страниц 11
Завершить сохранение индекса страницы 8 из страниц 11