ドキュメント変換の進行状況を追跡する

考えられる使用シナリオ

大きな Excel ファイルの変換には時間がかかる場合があります。この間、ロード画面だけでなく、ドキュメント変換の進行状況を表示して、アプリケーションの使いやすさを向上させたい場合があります。 Aspose.Cells は、ドキュメント変換プロセスの追跡をサポートします。**[IPageSavingCallback](https://reference.aspose.com/cells/net/aspose.cells.rendering/ipage Savingcallback)インターフェース。の[IPageSavingCallback](https://reference.aspose.com/cells/net/aspose.cells.rendering/ipage Savingcallback)インターフェイスが提供する[PageStartSaving](https://reference.aspose.com/cells/net/aspose.cells.rendering/ipage Savingcallback/methods/pagestart Saving)[PageEndSaving](https://reference.aspose.com/cells/net/aspose.cells.rendering/ipage Savingcallback/methods/pageend Saving)**カスタム クラスに実装できるメソッド。 T で示されているように、どのページをレンダリングするかを制御することもできます。estPageSavingCallbackカスタムクラス。

ドキュメント変換の進行状況を追跡する

次のコード サンプルは、ソースエクセルファイルを使用して、変換の進行状況をコンソールに出力します。TestPageSavingCallbackを実装するカスタムクラス**[IPageSavingCallback](https://reference.aspose.com/cells/net/aspose.cells.rendering/ipage Savingcallback)**インターフェース。

サンプルコード

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

コンソール出力

ページ 11 のページ インデックス 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 の保存を終了します