Отслеживание процесса преобразования документа

Возможные сценарии использования

Иногда преобразование больших файлов Excel может занять некоторое время. В это время вы можете захотеть показать ход преобразования документа, а не просто экран загрузки, чтобы повысить удобство использования вашего приложения. Aspose.Cells поддерживает процесс преобразования документа отслеживания, предоставляя**IPageSavingCallback**интерфейс.**IPageSavingCallback**интерфейс обеспечивает**PageStartSaving**и**PageEndSaving** методы, которые вы можете реализовать в своем пользовательском классе. Вы также можете управлять отображением страниц, как показано в*TestPageSavingCallback*пользовательский класс.

Отслеживание процесса преобразования документа

Следующий пример кода загружаетисходный файл excelи выводит ход преобразования в консоли с помощью командыTestPageSavingCallbackпользовательский класс, который реализует**IPageSavingCallback**интерфейс.

Образец кода

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the source directory.
String sourceDir = Utils.Get_SourceDirectory();
// The path to the output directory.
String outputDir = Utils.Get_OutputDirectory();
Workbook wb = new Workbook(sourceDir + "PagesBook1.xlsx");
PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
pdfSaveOptions.setPageSavingCallback(new TestPageSavingCallback());
wb.save(outputDir + "DocumentConversionProgress.pdf", pdfSaveOptions);

Ниже приведен код дляTestPageSavingCallbackпользовательский класс.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
class TestPageSavingCallback implements IPageSavingCallback {
public void pageStartSaving(PageStartSavingArgs args)
{
System.out.println("Start saving page index " + args.getPageIndex() + " of pages " + args.getPageCount());
//don't output pages before page index 2.
if (args.getPageIndex() < 2)
{
args.setToOutput(false);
}
}
public void pageEndSaving(PageEndSavingArgs args)
{
System.out.println("End saving page index " + args.getPageIndex() + " of pages " + args.getPageCount());
//don't output pages after page index 8.
if (args.getPageIndex() >= 8)
{
args.setHasMorePages(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